# 初期入力

K,N = (int(x) for x in input().split(" "))

A = [0]

for i in input().split():

    if i !="0":

        A.append( int(i) )



# 1軒ずつ距離のリスト

x =[A[i+1] - A[i] for i,v in enumerate(A[:-1]) ]

if N == len(A):

    x.append(K -A[-1])

else:

    x.append(K - A[-1] +A[1])



#　求めるのは　K　－　max(隣と離れた家の距離)

kyori_min = K - max(x)

print(kyori_min)
# 初期入力

K,N = (int(x) for x in input().split(" "))

A = list(map(int, input().split()))

A.append(0) # 基準地点を最後に追加、スタートが０でもうまくいく



# 1件となりまでの距離

kyori = [ A[i+1] -A[i] for i,v in enumerate(A[:-1]) ]

kyori[-1] = kyori[-1] + K # n番目から基準までは全体から「引く」

kyori.append(A[0] -A[-1] ) # 基準から1番目までの距離

x_saisyo_saigo = kyori[-2] +kyori[-1]

kyori.append(x_saisyo_saigo) # n番目から1番目の距離



# 最短距離は、全体からmax(隣の家との距離)を引く

kyori_min = K - max(kyori)

print(kyori_min)
# 初期入力
K, N = (int(x) for x in input().split(" "))
A = [0]
for i in input().split():
    if i != "0":
        A.append(int(i))
# 1軒ずつ距離のリスト
x = [A[i + 1] - A[i] for i, v in enumerate(A[:-1])]
if N == len(A):
    x.append(K - A[-1])
else:
    x.append(K - A[-1] + A[1])
# 　求めるのは　K　－　max(隣と離れた家の距離)
kyori_min = K - max(x)
print(kyori_min)

# 初期入力
K, N = (int(x) for x in input().split(" "))
A = list(map(int, input().split()))
A.append(0)  # 基準地点を最後に追加、スタートが０でもうまくいく
# 1件となりまでの距離
kyori = [A[i + 1] - A[i] for i, v in enumerate(A[:-1])]
kyori[-1] = kyori[-1] + K  # n番目から基準までは全体から「引く」
kyori.append(A[0] - A[-1])  # 基準から1番目までの距離
x_saisyo_saigo = kyori[-2] + kyori[-1]
kyori.append(x_saisyo_saigo)  # n番目から1番目の距離
# 最短距離は、全体からmax(隣の家との距離)を引く
kyori_min = K - max(kyori)
print(kyori_min)

-A = [0] -for i in input().split(): -    if i != "0": -        A.append(int(i)) -# 1軒ずつ距離のリスト -x = [A[i + 1] - A[i] for i, v in enumerate(A[:-1])] -if N == len(A): -    x.append(K - A[-1]) -else: -    x.append(K - A[-1] + A[1]) -# 　求めるのは　K　－　max(隣と離れた家の距離) -kyori_min = K - max(x) +A = list(map(int, input().split())) +A.append(0)  # 基準地点を最後に追加、スタートが０でもうまくいく +# 1件となりまでの距離 +kyori = [A[i + 1] - A[i] for i, v in enumerate(A[:-1])] +kyori[-1] = kyori[-1] + K  # n番目から基準までは全体から「引く」 +kyori.append(A[0] - A[-1])  # 基準から1番目までの距離 +x_saisyo_saigo = kyori[-2] + kyori[-1] +kyori.append(x_saisyo_saigo)  # n番目から1番目の距離 +# 最短距離は、全体からmax(隣の家との距離)を引く +kyori_min = K - max(kyori)