local ior = io.read
local l, n = ior("*n", "*n")
local x = {}
for i = 1, n do
  x[i] = ior("*n")
end
local dpl, dpr = {}, {}
dpl[1 + 0] = 0
dpr[1 + 0] = l - x[n]
dpl[1 + 1] = x[1]
dpr[1 + 1] = 0

local altl, altr = {}, {}
local srcl, srcr, dstl, dstr = dpl, dpr, altl, altr
local mma = math.max

local function getlen(idx_from, idx_to)
  local len = x[idx_to] - x[idx_from]
  if(len < 0) then len = len + l end
  return len
end

for i = 2, n do
  dstl[1 + 0] = 0
  dstl[1 + 1] = srcr[1 + 0] + getlen(n + 1 - (i - 1), 1)
  for j = 2, i - 1 do
    dstl[1 + j] = mma(srcl[1 + j - 1] + getlen(j - 1, j), srcr[1 + j - 1] + getlen(n + 1 - (i - j), j))
  end
  dstl[1 + i] = srcl[1 + i - 1] + getlen(i - 1, i)

  dstr[1 + 0] = srcr[1 + 0] + getlen(n + 1 - i, n + 1 - (i - 1))
  for j = 1, i - 2 do
    dstr[1 + j] = mma(srcr[1 + j] + getlen(n + 1 - (i - j), n + 1 - (i - 1 - j)), srcl[1 + j] + getlen(n + 1 - (i - j), j))
  end
  dstr[1 + i - 1] = srcl[1 + i - 1] + getlen(n, i - 1)
  dstr[1 + i] = 0

  srcl, srcr, dstl, dstr = dstl, dstr, srcl, srcr

end

local max = 0
for k, v in pairs(srcl) do
  max = mma(max, v)
end
for k, v in pairs(srcr) do
  max = mma(max, v)
end
print(max)
