#include <bits/stdc++.h>

using namespace std;

int polja[10000][10000]={0};

int dfs(int x,int y,int a,int g,int n,int m){
if (polja[x][y]!=0){
    if (g==0)
    return a; else
    return a+1;}
    g++;
    polja[x][y]=a;
    if (x!=0)
    dfs(x-1,y,a,g,n,m);
    if (x<n-1)
    dfs(x+1,y,a,g,n,m);
    if (y!=0)
    dfs(x,y-1,a,g,n,m);
    if (y<m-1)
    dfs(x,y+1,a,g,n,m);
}

int main()
{
    int n,m,k,x,y,l=1;
    scanf("%d %d %d",&n,&m,&k);
    for (int i=0;i<k;i++){
        scanf("%d %d",&x,&y);
        polja[x-1][y-1]=-1;
    }
    for (int i=0;i<n;i++)
    for(int j=0;j<m;j++){
        l=dfs(i,j,l,0,n,m);
    }
    l--;
    cout << l << endl;
    return 0;
}