#include<bits/stdc++.h>
using namespace std;
void brisi(long long int a[][1000], long long int n, long long int m, long long int i, long long int j)
{
    a[i][j]=1;
    if (i+1<n)
        if (a[i+1][j]==0)
            brisi(a,n,m,i+1,j);
    if (j+1<m)
        if (a[i][j+1]==0)
            brisi(a,n,m,i,j+1);
    if (i-1>=0)
        if (a[i-1][j]==0)
            brisi(a,n,m,i-1,j);
    if (j-1>=0)
        if (a[i][j-1]==0)
            brisi(a,n,m,i,j-1);
}
int main()
{
    long long int i,j,k,n,m,a[1000][1000],x[1000000],y[1000000],s=0;
    cin>>n>>m>>k;
    memset(a,0,n*m*sizeof(a[0][0]));
    for(i=0; i<k; i++)
    {
        cin>>x[i]>>y[i];
        a[x[i]-1][y[i]-1]=1;
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
            if(a[i][j]==0)
            {
                brisi(a,n,m,i,j);
                s++;
            }
    }
    cout<<s;
}