#include<cstdio>
#include<cstring>
using namespace std;
const int N=2010;
inline int read()
{
int s=0; char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') s=(s<<3)+(s<<1)+c-'0',c=getchar();
return s;
}
int n,m,e,x,y,ans,match[N]; bool a[N][N],vis[N];
bool dfs(int now)
{
for(int i=1;i<=m;i++)
if(!vis[i]&&a[x][i])
{
vis[i]=1;
if(!match[i]||dfs(match[i]))
{match[i]=x; return 1;}
}
return 0;
}
int main()
{
n=read(),m=read(),e=read();
while(e--) x=read(),y=read(),a[x][y]=1;
for(int i=1;i<=n;i++) ans+=dfs(i),memset(vis,0,sizeof(vis));
printf("%d",ans);
return 0;
}