#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>

using namespace std;

int n,m,pos[2000][2000],k,x,y,u;

queue<int> qr,qk;
int dr[]={-1,0,1,0};
int dk[]={0,1,0,-1};
int bfs(int r, int k)
{
    qr.push(r);
    qk.push(k);
    pos[r][k]=0;
    while(qr.size()>=0)
    {
        r=qr.front();
        k=qk.front();
        for(int i=0;i<4;i++)
        {
            if(pos[r+dr[i]][k+dk[i]]==1)
            {
                qr.push(r+dr[i]);
                qk.push(k+dk[i]);
                pos[r+dr[i]][k+dk[i]]=0;
            }
        }
        qr.pop();
        qk.pop();
    }
}

int main()
{
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            pos[i][j]=1;

        }
    for(int i=1;i<=k;i++){
            cin>>x>>y;
            pos[x][y]=0;
    }


    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            if(pos[i][j]==1)
            {
                bfs(i,j);
                u++;
            }

        }
    cout<<u<<endl;
    return 0;
}