n,k = map(int, input().split()) a = list(map(int, input().split())) a.append(a[0] + 2*n) p = 0 mn = 2*n for i in range(k): if mn > a[i+1] - a[i]: p = i mn = a[i+1] - a[i] an = [0] * (k) for i in range(k): an[i] = (a[(p+i) % k] - a[p]) % (2*n) an.append(2*n) 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)