#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, k;
PII match[N][N];
bool g[N][N], vis[N][N];
// 日型跳跃方向
int dirs[8][2]={{-2, 1}, {-2, -1}, {-1, -2}, {-1, 2}, {1, -2}, {1, 2}, {2, -1}, {2, 1}};
bool find(int x, int y){
for(int i=0; i<8; ++i){
int nx=x+dirs[i][0];
int ny=y+dirs[i][1];
if(1<=nx && nx<=n && 1<=ny && ny<=m && !g[nx][ny] && !vis[nx][ny]){
vis[nx][ny]=true;
PII t=match[nx][ny];
if(!t.fi || find(t.fi, t.se)){
match[nx][ny]={x, y};
return true;
}
}
}
return false;
}
int main(){
memset(g, 0x00, sizeof g);
memset(match, 0x00, sizeof match);
cin>>n>>m>>k;
for(int i=0; i<k; ++i){
int a, b;
cin>>a>>b; // 读入障碍点
g[a][b]=true;
}
int ans=0;
for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j){
if(g[i][j] || (i+j)&0x01) continue; // 从坐标和为偶数向奇数匹配
memset(vis, 0x00, sizeof vis);
if(find(i, j)) ++ans;
}
}
cout<<n*m-k-ans<<endl;
return 0;
}