#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int v, w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int f(int x, int y) { if (x >= y) return 0; int z = (x + y) / 2 - x; return max(0, y - z * 2 - 1); } int main() { int n, m; while (cin >> n >> m) { int l = INT_MAX, r = INT_MIN; while (m--) { int x; cin >> x; l = min(l, x - 1); r = max(r, x); } if (l == 0 && r == n) { cout << 0 << endl; continue; } if (l > 0 && r < n) { cout << f(l, n - r) + f(n - r, l) << endl; continue; } int x; if (l == 0) x = n - r; if (r == n) x = l; ll sum = 0; for (int y = 1; y <= x - 1; y++) sum += f(y, x - y); cout << sum << endl; } }