k,n=list(map(int,input().split()))

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

ans=10**18 #最小値を求めるので十分大きな値で初期化

for i in range(n): #上式を元に最短距離を求める

 dist1=(arr[i-1]-arr[i])%k

 dist2=(arr[i]-arr[(i+1)%n])%k

 ans=min(ans,dist1,dist2)

print(ans)

k,n = list(map(int,input().split())) 

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

s =[a[i]-a[i-1] for i in range (1,n)] #2点距離をリストに格納(北端は越さない)  

s.append(k-a[n-1]+a[0]) #北端を超える2点距離をリストに格納

print((k-max(s)))   #最長距離となる２点を見つける→一周から引けば良い

k, n = list(map(int, input().split()))
arr = list(map(int, input().split()))
ans = 10**18  # 最小値を求めるので十分大きな値で初期化
for i in range(n):  # 上式を元に最短距離を求める
    dist1 = (arr[i - 1] - arr[i]) % k
    dist2 = (arr[i] - arr[(i + 1) % n]) % k
    ans = min(ans, dist1, dist2)
print(ans)

k, n = list(map(int, input().split()))
a = list(map(int, input().split()))
s = [a[i] - a[i - 1] for i in range(1, n)]  # 2点距離をリストに格納(北端は越さない)
s.append(k - a[n - 1] + a[0])  # 北端を超える2点距離をリストに格納
print((k - max(s)))  # 最長距離となる２点を見つける→一周から引けば良い

-arr = list(map(int, input().split())) -ans = 10**18  # 最小値を求めるので十分大きな値で初期化 -for i in range(n):  # 上式を元に最短距離を求める -    dist1 = (arr[i - 1] - arr[i]) % k -    dist2 = (arr[i] - arr[(i + 1) % n]) % k -    ans = min(ans, dist1, dist2) -print(ans) +a = list(map(int, input().split())) +s = [a[i] - a[i - 1] for i in range(1, n)]  # 2点距離をリストに格納(北端は越さない) +s.append(k - a[n - 1] + a[0])  # 北端を超える2点距離をリストに格納 +print((k - max(s)))  # 最長距離となる２点を見つける→一周から引けば良い