#include<cstdio>
#include<queue>

using namespace std;
queue<int> v;
int c = 0;
//int cc=0;
int mat[10004][10004];
bool bat[10004][10004];
void bfs(int x, int y){
    int tx, ty;
    v.push(x);
    v.push(y);
    while(!v.empty()){
        tx=v.front();
        v.pop();
        ty=v.front();
        v.pop();
        //if(mat[tx][ty]==1) continue;
        //else{
        if(mat[tx+1][ty]==0 && !bat[tx+1][ty]){
            v.push(tx+1);
            v.push(ty);
            bat[tx+1][ty]=true;
            //cout<<tx+1<<" "<<ty<<endl;
        }
        if(mat[tx-1][ty]==0 && !bat[tx-1][ty]){
            v.push(tx-1);
            v.push(ty);
            bat[tx-1][ty]=true;
            //cout<<tx-1<<" "<<ty<<endl;
        }
        if(mat[tx][ty-1]==0 && !bat[tx][ty-1]){
            v.push(tx);
            v.push(ty-1);
            bat[tx][ty-1]=true;
            //cout<<tx<<" "<<ty-1<<endl;
        }
        if(mat[tx][ty+1]==0 && !bat[tx][ty+1]){
            v.push(tx);
            v.push(ty+1);
            bat[tx][ty+1]=true;
            //cout<<tx<<" "<<ty+1<<endl;
        }
        mat[tx][ty]=1;
        //for(int i = 0;i<7+2;i++){
        //for(int j=0;j<7+2;j++){
            //cout<<mat[i][j];
        //}
        //cout<<endl;
        //cc++;
        //if(cc>30) break;
    }
    //cout<<x<<" "<<y<<endl<<endl;// ///////////ovo moye biti bitno
    //} //OVAJ JE YA ELSE

    }
    //int m = 5;
    //int n = 4;
    //for(int i = 0;i<m+2;i++){
        //for(int j=0;j<n+2;j++){
          //  cout<<mat[i][j];
       // }
       // cout<<endl;
    //}
    //cout<<x<<" "<<y<<endl<<endl;



int main(){
    //SVUGDE YA MATROCU TREBA +1
    //CRNO JE 1
    int m,n,k,t1,t2;
    scanf("%d %d %d", &m, &n, &k);
    //int mat[m+3][n+3];
    for(int i = 1;i<=m;i++){
        for(int j=1;j<=n;j++){
            mat[i][j]=0;
            bat[i][j]=false;
        }
    }
    for(int i = 0;i<m+2;i++){
        mat[i][0]=1;
        mat[i][n+1]=1;
    }
    for(int i = 0;i<n+2;i++){
        mat[0][i]=1;
        mat[m+1][i]=1;
    }
    for(int i = 0;i<k;i++){
        scanf("%d %d", &t1,&t2);
        mat[t1][t2]=1;
    }
    /*YA ISPISIVANJE MATRICE
    for(int i = 0;i<m+2;i++){
        for(int j=0;j<n+2;j++){
            cout<<mat[i][j];
        }
        cout<<endl;
    }
    */



    for(int i = 1;i<=m;i++){
        for(int j=1;j<=n;j++){
                if(mat[i][j]==0){ bfs(i, j); c++;}
                //if(cc>30) break;
        }
    }

    printf("%d", c);

    return 0;
}