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

vector<vector<vector<int> > > crne;
void add(int x, int y) {
    int red=-1;
    for (int i=0; i<crne.size(); i++) {
        for (int k=0; k<crne[i][0].size(); k++) {
            if (abs(x-crne[i][0][k])<=1&&abs(y-crne[i][1][k])<=1) {
                if (red==-1) {
                    crne[i][0].push_back(x);
                    crne[i][1].push_back(y);
                    red=i;
                    break;
                }
                else {
                    for (int z=0;z<crne[i][0].size();z++) {
                        crne[red][0].push_back(crne[i][0][z]);
                        crne[red][1].push_back(crne[i][1][z]);
                    }
                    crne.erase(crne.begin()+i);
                    i--;
                    break;
                }
            }
        }
    }
    if (red==-1) {
        vector<vector<int> > a;
        a.resize(2);
        a[0].push_back(x);
        a[1].push_back(y);
        crne.push_back(a);
    }
}
int main() {
    int n,m,k;
    int x,y;
    scanf("%d %d %d",&n,&m,&k);
    for (int i=0; i<k; i++) {
        scanf("%d %d",&x,&y);
        add(x,y);
    }
    for (int i=0; i< crne.size(); i++) {
        for (int k=0; k<crne[i][0].size(); k++) {
            if (!(crne[i][0][k]==1||crne[i][0][k]==n||crne[i][1][k]==0||crne[i][1][k]==m)) {
                crne[i][0].erase(crne[i][0].begin()+k);
                crne[i][1].erase(crne[i][1].begin()+k);
                k--;
            }
        }
    }
    int res=1;
    for (int i=0; i<crne.size(); i++) {
        res+=crne[i][0].size()-1;
    }
    cout<<res<<endl;
}