#include<bits/stdc++.h>
using namespace std;
int n,m,e;
int cp[650][650],tail[650],an,bn,head[650],result,pc[650],ax[650][650];
bool find(int p)
{
head[p]++;
for(int i=head[p];i<=tail[p];i++)
{
if(pc[cp[p][i]]) find(pc[cp[p][i]]);
if(!pc[cp[p][i]])
{
pc[cp[p][head[p]-1]]=0;
pc[cp[p][i]]=p;
head[p]=i;
return 1;
}
}
return 0;
}
int main()
{
freopen("1.txt","r",stdin);
scanf("%d%d%d",&n,&m,&e);
if(n<=m)
{
for(int i=1;i<=e;i++)
{
scanf("%d%d",&an,&bn);
if(!ax[an][bn]) cp[an][++tail[an]]=bn;
ax[an][bn]=1;
}
}
else
{
for(int i=1;i<=e;i++)
{
scanf("%d%d",&an,&bn);
if(!ax[an][bn]) cp[bn][++tail[bn]]=an;
ax[an][bn]=1;
}
swap(n,m);
}
for(int i=1;i<=n;i++)
{
if(find(i)) result++;
}
printf("%d",result);
return 0;
}