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

int n,m,k;
int mat[1005][1005];
int x,y;

bool v(int row,int col)
{
    if(row>=0 && row<n && col>=0 && col<m && mat[row][col]==0) return true;
    else return false;
}

void dfs(int row,int col,int boja)
{
    mat[row][col]=boja;
    if(v(row,col+1)) dfs(row,col+1,boja);
    if(v(row+1,col)) dfs(row+1,col,boja);
    if(v(row,col-1)) dfs(row,col-1,boja);
    if(v(row-1,col)) dfs(row-1,col,boja);
}

int main()
{
    cin>>n>>m>>k;
    for(int i=0; i<k; i++)
    {
         cin>>x>>y;
         mat[x-1][y-1]=-1;
    }
    int boja=1;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(mat[i][j]==0)
                dfs(i,j,boja++);
        }
        
    }
    cout<<boja-1;
}