#include <bits/stdc++.h>

using namespace std;

int main()
{
    long long n, m, i,j, k, x,y, broj, brojac;
    vector <long long int> vektor;
    vektor.push_back(0);
    cin>>n>>m>>k;
    long long polje[n][m];
    memset(polje,-1,sizeof(polje));
    for(i=0; i<k; i++)
    {
        cin>>x>>y;
        polje[x-1][y-1]=0;
    }

    broj=0;

    for(i=0; i<n; i++)
    {

        for(j=0; j<m; j++)
        {
            if(polje[i][j]==-1)
            {
                if ((i==0)&&(j==0))
                {
                    if(polje[0][0]!=0)
                    {
                        broj++;
                        vektor.push_back(broj);
                        polje[0][j]=broj;
                    }
                }

                else if(i==0)
                {
                    if(polje[0][j-1]==0)
                    {
                        broj++;
                        vektor.push_back(broj);
                        polje[0][j]=broj;
                    }
                    else
                    {
                        polje[0][j]=broj;
                    }
                }
                else if(j==0)
                {
                    if(polje[i-1][j]==0)
                    {
                        broj++;
                        vektor.push_back(broj);
                    }
                    polje[i][0]=broj;
                }

                else
                {
                    if((polje[i][j-1]==0)&&(polje[i-1][j]==0))
                    {
                        broj++;
                        vektor.push_back(broj);
                        polje[i][j]=broj;
                    }
                    else if((polje[i][j-1]==0)||(polje[i-1][j]==0))
                    {
                        polje[i][j]=max(polje[i][j-1],polje[i-1][j]);
                    }
                    else
                    {
                        vektor[max(polje[i][j-1],polje[i-1][j])]=vektor[min(polje[i][j-1],polje[i-1][j])];
                        polje[i][j]=min(polje[i][j-1],polje[i-1][j]);
                    }
                }
            }
        }
    }

    brojac=0;

    for(i=0; i<=broj; i++)
    {
        if(vektor[i]>brojac)
        {
            brojac=vektor[i];
        }
    }

    cout<<brojac<<endl;

    return 0;
}