#include<bits/stdc++.h>
using namespace std;
int N,M,E,x,y,ans;
bool Edge[505][505],Judge[505];
int pp[505];
bool dfs(int beg){
for (int i=1;i<=M;i++){
if (Edge[beg][i] && !Judge[i]){
Judge[i]=true;
if (!pp[i] || dfs(pp[i])){
pp[i]=beg;
return true;
}
}
}
return false;
}
int main(){
scanf("%d%d%d",&N,&M,&E);
for (int i=1;i<=E;i++){
scanf("%d%d",&x,&y);
Edge[x][y]=true;
}
for (int i=1;i<=N;i++){
if (dfs(i)) ans++;
}
printf("%d",ans);
return 0;
}