#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> PII;
#define fi first
#define se second

const int N=105;
int n, m;
PII match[N][N];
bool g[N][N], vis[N][N]; // hungary 标记数组
int dirs[4][2]={{-1, 0}, {0, 1}, {1, 0}, {0, -1}}; // 定义方向向量

bool find(int x, int y){ // hungary find function
    for(int i=0; i<4; ++i){
        int nx=x+dirs[i][0];
        int ny=y+dirs[i][1];
        if(nx && nx<=n && ny && ny<=n && !g[nx][ny] && !vis[nx][ny]){
            vis[nx][ny]=true;
            PII t=match[nx][ny];
            if(t.fi==-1 || find(t.fi, t.se)){
                match[nx][ny]={x, y};
                return true;
            }
        }
    }
    return false;
}

int main(){
    cin>>n>>m;
    while(m--){
        int x, y;
        cin>>x>>y;
        g[x][y]=true; // 读入障碍坐标
    }

    memset(match, -1, sizeof match);
    int ans=0;
    // 将图进行2-染色(0, 0)设置为黑色
    for(int i=1; i<=n; ++i)
        for(int j=1; j<=n; ++j)
            if((i+j)&0x01 && !g[i][j]){ // 如果是白色格子并且可以无障碍
                memset(vis, 0x00, sizeof vis);
                if(find(i, j)) ans++;
            }
    cout<<ans<<endl;
    return 0;
}