#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;
}