#include <bits/stdc++.h>
using namespace std;
const int N = 1100;
int i, j, k, l, m, n, o, p, ans, Max, now, A[N][N], br[N], bc[N], a[10], b[10];
void Init() {
  scanf("%d%d", &n, &m);
  for (; m; m--) {
    scanf("%d%d", &o, &p);
    A[o][p] = 1;
    bc[p] = 1;
    br[o] = 1;
  }
}
inline int checkR(int left, int num) {
  if (left) {
    return (!A[num][1]) && (!br[num]);
  } else
    return (!A[num][n]) && (!br[num]);
}
inline int checkC(int up, int num) {
  if (up) {
    return (!A[1][num]) && (!bc[num]);
  } else
    return (!A[n][num]) && (!bc[num]);
}
void dfs(int i) {
  if (i == 9) {
    int f = 1;
    if (a[1]) {
      if (a[8] || a[6] || a[4]) f = 0;
    }
    if (a[2]) {
      if (a[3] || a[7] || a[5]) f = 0;
    }
    if (a[3]) {
      if (a[2] || a[8] || a[6]) f = 0;
    }
    if (a[4]) {
      if (a[5] || a[1] || a[7]) f = 0;
    }
    if (a[5]) {
      if (a[2] || a[4] || a[8]) f = 0;
    }
    if (a[6]) {
      if (a[3] || a[1] || a[7]) f = 0;
    }
    if (a[7]) {
      if (a[2] || a[6] || a[4]) f = 0;
    }
    if (a[8]) {
      if (a[1] || a[3] || a[5]) f = 0;
    }
    if (f) {
      int j;
      Max = now > Max ? now : Max;
    }
  } else
    for (a[i] = 0; a[i] <= b[i]; a[i]++) {
      now += a[i];
      dfs(i + 1);
      now -= a[i];
    }
}
void put() {
  int j;
  for (j = 1; j <= 8; j++) printf("%d ", b[j]);
  puts("");
}
void Work() {
  for (i = 2; i <= n / 2; i++) {
    now = Max = 0;
    b[1] = checkC(1, i);
    b[6] = checkC(0, i);
    b[8] = checkR(1, i);
    b[3] = checkR(0, i);
    b[2] = checkC(1, n - i + 1);
    b[5] = checkC(0, n - i + 1);
    b[7] = checkR(1, n - i + 1);
    b[4] = checkR(0, n - i + 1);
    dfs(1);
    ans += Max;
  }
  if (n & 1) {
    i = n / 2 + 1;
    b[1] = checkC(1, i);
    b[3] = checkC(0, i);
    b[4] = checkR(1, i);
    b[2] = checkR(0, i);
    if (b[1] + b[2] + b[3] + b[4]) ans++;
  }
}
int main() {
  Init();
  Work();
  cout << ans << endl;
  return 0;
}
