DBG = !true
DBG2 = !true
m,n = gets.split.map{|x| x.to_i}
a = []
for i in 0...n
  a << gets.to_i
end

def sum(p,q)
  puts "sum(#{p},#{q}) called b[q] #{$b[q]}" if DBG
  if p > q
    v = 0
  elsif p == 0
    v = $b[q]
  else
    v = $b[q] - $b[p-1]
  end
  puts "sum returns #{v}" if DBG
  return v
end

def xl(a,m,k,r)
  v = 2*sum(k-r,k-1) + (2*r-1)*m - 2*sum(k+2,k+r) -
      a[k+1] + [ a[k+1]-a[k], m+a[k]-a[k+1] ].max
  if k+r < a.size - 1
    v += 2*(m-a[k+r+1])
  end
  puts "xl: k #{k} r #{r} returns #{v}" if DBG
  return v
end

def xr(a,m,k,r)
  v = 2*sum(k-r,k-2) + (2*r)*m - 2*sum(k+1,k+r) +
      a[k-1] + [ a[k]-a[k-1], m+a[k-1]-a[k] ].max
  if k-r > 0
    v += 2*a[k-r-1]
  end
  puts "xr: k #{k} r #{r} returns #{v}" if DBG
  return v
end

# # main # #
$b = [ a[0] ]
for i in 1...n
  $b << $b[i-1] + a[i]
end

if n==1
  mx = [ a[0], m-a[0] ].max
  print mx
  exit
end

v0 = m - a[1] + [ a[1]-a[0], m+a[0]-a[1] ].max
vn1 = a[n-2] + [ a[n-1]-a[n-2], m+a[n-2]-a[n-1] ].max
mx = [v0, vn1].max
puts "v0 #{v0} vn1 #{vn1}" if DBG2

for k in 1..(n-2)
  r = [k, n-1-k].min
  vl = xl(a,m,k,r)
  mx = vl if vl > mx
  vr = xr(a,m,k,r)
  mx = vr if vr > mx
  puts "k #{k} xl #{vl} xr #{vr}" if DBG2
end

print mx
