INF = 1<<60 N, K = map(int, input().split()) A = list(map(int, input().split())) for i in range(K): A.append(A[i]+N*2) def func(size): MAX = -INF for i in range(2, K*2): MAX = max(MAX, A[i-2]-size*(i-2)) if A[i]-size*(i-1)-2 < MAX: return False return True left = 0 right = N*2//K+1 while left+1 < right: mid = (left+right)//2 if func(mid): left = mid else: right = mid print(left)