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

void f(int n,int m,vector<vector<bool> > &v,int x,int y)
{
    if(x>0 && v[x-1][y]==false)
    {
        v[x-1][y]=true;
        f(n,m,v,x-1,y);
    }
    if(y>0 && v[x][y-1]==false)
    {
        v[x][y-1]=true;
        f(n,m,v,x,y-1);
    }
    if(x<n-1 && v[x+1][y]==false)
    {
        v[x+1][y]=true;
        f(n,m,v,x+1,y);
    }
    if(y<m-1 && v[x][y+1]==false)
    {
        v[x][y+1]=true;
        f(n,m,v,x,y+1);
    }
}

int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,m,k,x,y,br=0;
    cin >> n >> m >> k;
    vector<vector<bool> > v(n,vector<bool> (m,false));
    for (int i=0;i<k;i++)
    {
        cin >> x >> y;
        v[x-1][y-1]=true;
    }
    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            if(v[i][j]==false)
            {
                v[i][j]=true;
                f(n,m,v,i,j);
                br++;
            }
    cout << br;
}