#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
const long long MOD = 1000000007;
int n, m, a[MAXN], bitl[MAXN], bitr[MAXN];
void add(int x, int val, int *bit) {
  for (; x < MAXN; x += -x & x) {
    bit[x] += val;
  }
}
int qry(int x, int *bit) {
  int ret = 0;
  for (; x > 0; x -= -x & x) {
    ret += bit[x];
  }
  return ret;
}
int lbd(int x, int *bit) {
  int l = 0, r = n + 1;
  while (l < r - 1) {
    int mid = (l + r) >> 1;
    if (qry(mid, bit) >= x) {
      r = mid;
    } else {
      l = mid;
    }
  }
  return r;
}
int ubd(int x, int *bit) { return lbd(x + 1, bit); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    add(i, 1, bitl);
    add(i, 1, bitr);
  }
  for (int i = 1; i <= m; i++) {
    ;
    cin >> a[i];
    int l = lbd(a[i] + 1, bitl), r = ubd(a[i] + 1, bitl);
    add(1, -1, bitl);
    add(l, 1, bitl);
    add(r, -1, bitl);
    l = lbd(a[i] - 1, bitr), r = ubd(a[i] - 1, bitr);
    add(1, 1, bitr);
    add(l, -1, bitr);
    add(r, 1, bitr);
  }
  long long ans = 0;
  if (n != 1) {
    for (int i = 1; i <= n; i++) {
      int l = qry(i, bitl), r = qry(i, bitr);
      l = max(1, l - 1), r = min(n, r + 1);
      ;
      ans += r - l + 1;
    }
  }
  cout << ans << '\n';
}
