#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
#define f first
#define s second
#define fore(i,a,b) for(int i = (a), ThxMK = (b); i < ThxMK; ++i)
#define pb push_back
#define all(s) begin(s), end(s)
#define rall(s) s.rbegin(), s.rend()
#define _ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define sz(s) int(s.size())
#define ENDL '\n'
using namespace std;
typedef long double ld;
typedef long long lli;
typedef pair<lli,lli> ii;
typedef vector<lli> vi;
#define deb(x) cout << #x": " << (x) << endl;
lli c = 0;
void awa(deque <lli> &r, lli id){
vi a;
lli l = r[id];
id++;
while (r[id] < l && id < sz(r) - 1){
a.pb(r[id]);
id++;
}
if (id < sz(r)){
lli f = r[id];
if (l > f){
fore (i,0,sz(a)){
c+=(f - a[i]);
}
if (sz(r) - id >= 3){
awa(r, id);
}
else{
return;
}
}
else{
fore (i,0,sz(a)){
c+=(l - a[i]);
}
if (sz(r) - id >= 3){
awa(r, id);
}
else{
return;
}
}
}
else{
lli f = a.back();
a.pop_back();
if (l > f){
fore (i,0,sz(a)){
c+=(f - a[i]);
}
return;
}
else{
fore (i,0,sz(a)){
c+=(l - a[i]);
}
return;
}
}
}
int main(){ _
lli x, n;
cin >> x >> n;
deque <lli> r;
fore (i,0,n){
lli a;
cin >> a;
r.pb(a);
}
while (r[0] <= r[1] && sz(r) > 2){
r.pop_front();
n--;
}
while (r[sz(r) - 1] <= r[sz(r) - 2] && sz(r) > 2){
r.pop_back();
n--;
}
if (sz(r) > 3){
awa(r, 0);
}
cout << abs(x - c) << ENDL;
return 0;
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0LG5vLXN0YWNrLXByb3RlY3Rvcix1bnJvbGwtbG9vcHMsZmFzdC1tYXRoIikKI3ByYWdtYSBHQ0MgdGFyZ2V0KCJhdngsYXZ4MixmbWEiKQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmIGZpcnN0CiNkZWZpbmUgcyBzZWNvbmQKI2RlZmluZSBmb3JlKGksYSxiKSBmb3IoaW50IGkgPSAoYSksIFRoeE1LID0gKGIpOyBpIDwgVGh4TUs7ICsraSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwocykgYmVnaW4ocyksIGVuZChzKQojZGVmaW5lIHJhbGwocykgcy5yYmVnaW4oKSwgcy5yZW5kKCkKI2RlZmluZSBfIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBzeihzKSBpbnQocy5zaXplKCkpCiNkZWZpbmUgRU5ETCAnXG4nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsaTsKdHlwZWRlZiBwYWlyPGxsaSxsbGk+IGlpOwp0eXBlZGVmIHZlY3RvcjxsbGk+IHZpOwojZGVmaW5lIGRlYih4KSBjb3V0IDw8ICN4IjogIiA8PCAoeCkgPDwgZW5kbDsKCmxsaSBjID0gMDsKCnZvaWQgYXdhKGRlcXVlIDxsbGk+ICZyLCBsbGkgaWQpewogIHZpIGE7CiAgbGxpIGwgPSByW2lkXTsKICBpZCsrOwogIHdoaWxlIChyW2lkXSA8IGwgJiYgaWQgPCBzeihyKSAtIDEpewogICAgYS5wYihyW2lkXSk7CiAgICBpZCsrOwogIH0KICBpZiAoaWQgPCBzeihyKSl7CiAgICBsbGkgZiA9IHJbaWRdOwogICAgaWYgKGwgPiBmKXsKICAgICAgZm9yZSAoaSwwLHN6KGEpKXsKICAgICAgICBjKz0oZiAtIGFbaV0pOwogICAgICB9CiAgICAgIGlmIChzeihyKSAtIGlkID49IDMpewogICAgICAgIGF3YShyLCBpZCk7CiAgICAgIH0KICAgICAgZWxzZXsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgIGVsc2V7CiAgICAgIGZvcmUgKGksMCxzeihhKSl7CiAgICAgICAgYys9KGwgLSBhW2ldKTsKICAgICAgfQogICAgICBpZiAoc3oocikgLSBpZCA+PSAzKXsKICAgICAgICBhd2EociwgaWQpOwogICAgICB9CiAgICAgIGVsc2V7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfQogIGVsc2V7CiAgICBsbGkgZiA9IGEuYmFjaygpOwogICAgYS5wb3BfYmFjaygpOwogICAgaWYgKGwgPiBmKXsKICAgICAgZm9yZSAoaSwwLHN6KGEpKXsKICAgICAgICBjKz0oZiAtIGFbaV0pOwogICAgICB9CiAgICAgIHJldHVybjsKICAgIH0KICAgIGVsc2V7CiAgICAgIGZvcmUgKGksMCxzeihhKSl7CiAgICAgICAgYys9KGwgLSBhW2ldKTsKICAgICAgfQogICAgICByZXR1cm47CiAgICB9CiAgfQp9CgppbnQgbWFpbigpeyBfCiAgbGxpIHgsIG47CiAgY2luID4+IHggPj4gbjsKICBkZXF1ZSA8bGxpPiByOwogIGZvcmUgKGksMCxuKXsKICAgIGxsaSBhOwogICAgY2luID4+IGE7CiAgICByLnBiKGEpOwogIH0KICB3aGlsZSAoclswXSA8PSByWzFdICYmIHN6KHIpID4gMil7CiAgICByLnBvcF9mcm9udCgpOwogICAgbi0tOwogIH0KICB3aGlsZSAocltzeihyKSAtIDFdIDw9IHJbc3oocikgLSAyXSAmJiBzeihyKSA+IDIpewogICAgci5wb3BfYmFjaygpOwogICAgbi0tOwogIH0KICBpZiAoc3oocikgPiAzKXsKICAgIGF3YShyLCAwKTsKICB9CiAgY291dCA8PCBhYnMoeCAtIGMpIDw8IEVOREw7CiAgcmV0dXJuIDA7Cn0K