#include <bits/stdc++.h>
using namespace std;
const int maxint = -1u >> 1;
template <class T>
bool get_max(T& a, const T& b) {
  return b > a ? a = b, 1 : 0;
}
template <class T>
bool get_min(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
const int maxn = 1000 + 5;
int n, m;
vector<int> vx, vy;
bool row[maxn], col[maxn];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    vx.push_back(x);
    vy.push_back(y);
  }
  memset(row, true, sizeof(row));
  memset(col, true, sizeof(col));
  row[0] = row[n - 1] = col[0] = col[n - 1] = false;
  for (int i = 0; i < vx.size(); i++) {
    row[vx[i] - 1] = false;
  }
  for (int i = 0; i < vy.size(); i++) {
    col[vy[i] - 1] = false;
  }
  int ans = accumulate(row, row + n, 0) + accumulate(col, col + n, 0);
  if (n % 2 == 1 && row[n >> 1] && col[n >> 1]) {
    ans--;
  }
  printf("%d\n", ans);
  return 0;
}
