n,k = map(int, input().split()) a = list(map(int, input().split())) a.append(a[0] + 2*n) an = a.copy() for i in range(k+1): an[i] -= a[0] ans = 0 for s in range(1, an[1], 2): ok = 0 ng = n while ng - ok > 1: mid = (ok + ng) // 2 def check(): x = 2*mid si = s for i in range(k-1): if si + x > an[i+2]: return False si = max(si+x, an[i+1]+1) return si + x <= s + 2*n if check(): ok = mid else: ng = mid ans = max(ans, ok*2) print(ans)