#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<deque>
#include<vector>
using namespace std;
int main()
{
int n1,n2,d;
scanf("%d%d%d",&n1,&n2,&d);
while(n1!=0&n2!=0&&d!=0)
{
int* count2=(int*)calloc(sizeof(int),n1+n2+4);
deque<pair<int,int> > q;
vector<int> v[n1+n2+1];
int i;
for(i=0;i<d;i++)
{
int ele1,ele2;
scanf("%d%d",&ele1,&ele2);
v[ele2].push_back(ele1);
count2[ele1]++;
}
int count[n1+n2+2];
int i3;
int ans[2];
for(i3=0;i3<2;i3++)
{
for(i=1;i<=n1+n2;i++)
count[i]=count2[i];
for(i=1;i<=n1+n2;i++)
{
if(count[i]!=0)
continue;
if(i<=n1)
q.push_back(make_pair (1,i));
else
{
if(i3==0)
q.push_back(make_pair(2,i));
else
q.push_front(make_pair(2,i));
}
}
int count1=2;
while(!q.empty())
{
pair<int,int> p=q.front();
q.pop_front();
if(!q.empty()&&q.front().first!=p.first)
count1+=1;
int n=v[p.second].size();
int i;
for(i=0;i<n;i++)
{
count[v[p.second][i]]--;
if(count[v[p.second][i]]==0)
{
pair<int,int> p1;
p1.second=v[p.second][i];
if(v[p.second][i]<=n1)
p1.first=1;
else
p1.first=2;
if(p1.first==p.first)
q.push_front(p1);//,(printf("inserting front %d %d\n",p1.first,p1.second));
else
q.push_back(p1);//,printf("inserting back %d %d\n",p1.first,p1.second);
}
}
}
ans[i3]=count1;
}
printf("%d\n",min(ans[0],ans[1]));
scanf("%d%d%d",&n1,&n2,&d);
}
return 0;
}
CgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxkZXF1ZT4KI2luY2x1ZGU8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIGludCBuMSxuMixkOwogICAgc2NhbmYoIiVkJWQlZCIsJm4xLCZuMiwmZCk7CiAgICB3aGlsZShuMSE9MCZuMiE9MCYmZCE9MCkKICAgIHsKICAgICAgICAgCWludCogY291bnQyPShpbnQqKWNhbGxvYyhzaXplb2YoaW50KSxuMStuMis0KTsKICAgICAgICAJZGVxdWU8cGFpcjxpbnQsaW50PiA+IHE7CiAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+IHZbbjErbjIrMV07CiAgICAJaW50IGk7CiAgICAJZm9yKGk9MDtpPGQ7aSsrKQogICAgCXsKICAgIAkJaW50IGVsZTEsZWxlMjsKICAgIAkJc2NhbmYoIiVkJWQiLCZlbGUxLCZlbGUyKTsKICAgIAkJdltlbGUyXS5wdXNoX2JhY2soZWxlMSk7CiAgICAJCWNvdW50MltlbGUxXSsrOwogICAgCX0KICAgIAlpbnQgY291bnRbbjErbjIrMl07CiAgICAJaW50IGkzOwogICAgCWludCBhbnNbMl07CiAgICAJZm9yKGkzPTA7aTM8MjtpMysrKQogICAgCXsKICAgIAlmb3IoaT0xO2k8PW4xK24yO2krKykKICAgIAkgIGNvdW50W2ldPWNvdW50MltpXTsKICAgIAlmb3IoaT0xO2k8PW4xK24yO2krKykKICAgIAl7CiAgICAJCWlmKGNvdW50W2ldIT0wKQogICAgCQkJY29udGludWU7CiAgICAJCWlmKGk8PW4xKQogICAgCQkJcS5wdXNoX2JhY2sobWFrZV9wYWlyICgxLGkpKTsKICAgIAkJZWxzZQogICAgCQl7CiAgICAgICAgICAgICAgICBpZihpMz09MCkKICAgIAkJCXEucHVzaF9iYWNrKG1ha2VfcGFpcigyLGkpKTsKICAgIAkJCWVsc2UKICAgIAkJCXEucHVzaF9mcm9udChtYWtlX3BhaXIoMixpKSk7CiAgICAgICAgICAgIH0KICAgIAl9CiAgICAJaW50IGNvdW50MT0yOwogICAgCXdoaWxlKCFxLmVtcHR5KCkpCiAgICAJewogICAgCQlwYWlyPGludCxpbnQ+IHA9cS5mcm9udCgpOwogICAgCQlxLnBvcF9mcm9udCgpOwogICAgCQlpZighcS5lbXB0eSgpJiZxLmZyb250KCkuZmlyc3QhPXAuZmlyc3QpCiAgICAJCQljb3VudDErPTE7CiAgICAJCWludCBuPXZbcC5zZWNvbmRdLnNpemUoKTsKICAgIAkJaW50IGk7CiAgICAJCWZvcihpPTA7aTxuO2krKykKICAgIAkJewogICAgCQkJY291bnRbdltwLnNlY29uZF1baV1dLS07CiAgICAJCQlpZihjb3VudFt2W3Auc2Vjb25kXVtpXV09PTApCiAgICAJCQl7CiAgICAJCQkJcGFpcjxpbnQsaW50PiBwMTsKICAgIAkJCQlwMS5zZWNvbmQ9dltwLnNlY29uZF1baV07CiAgICAJCQkJaWYodltwLnNlY29uZF1baV08PW4xKQogICAgCQkJCQlwMS5maXJzdD0xOwogICAgCQkJCWVsc2UKICAgIAkJCQkJcDEuZmlyc3Q9MjsKICAgIAkJCQlpZihwMS5maXJzdD09cC5maXJzdCkKICAgIAkJCQkJcS5wdXNoX2Zyb250KHAxKTsvLywocHJpbnRmKCJpbnNlcnRpbmcgZnJvbnQgJWQgJWRcbiIscDEuZmlyc3QscDEuc2Vjb25kKSk7CiAgICAJCQkJZWxzZQogICAgCQkJCQlxLnB1c2hfYmFjayhwMSk7Ly8scHJpbnRmKCJpbnNlcnRpbmcgYmFjayAlZCAlZFxuIixwMS5maXJzdCxwMS5zZWNvbmQpOwogICAgCQkJfQogICAgCQl9CgogICAgCX0KICAgIAlhbnNbaTNdPWNvdW50MTsKICAgIAkKICAgICB9CiAgICAJcHJpbnRmKCIlZFxuIixtaW4oYW5zWzBdLGFuc1sxXSkpOwogICAgCXNjYW5mKCIlZCVkJWQiLCZuMSwmbjIsJmQpOwoKICAgIH0KCXJldHVybiAwOwp9