import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### n, k = na() a = na() f = 10 ** 18 fi = -1 for i in range(k): if (a[(i+1) % k] - a[i]) % (2 * n) < f: f = (a[(i+1) % k] - a[i]) % (2 * n) fi = i x = a[fi] a = [(a[i] - x) % (2 * n) // 2 for i in range(k)] a.sort() a.append(n) ok = 1 ng = n + 1 while ng - ok > 1: mid = (ok + ng) // 2 FLAG = 0 for x in range(a[1]): y = x for i in range(1, k): y = max(y + mid, a[i]) if y >= a[i+1]: break else: if y <= x + n: FLAG = 1 break if FLAG: ok = mid else: ng = mid print(ok * 2)