#include <iostream>
#include <string.h>
using namespace std;
const int maxn = 1001;
int girl[maxn];
int used[maxn];
int line[maxn][maxn];
int m;
// m是顶点的个数
// n是能够配对的数目
bool find_(int x){
for(int j = 1; j <= m; ++j){
if(line[x][j] == true && used[j] == false){ // 当x能和j配对的时候,但是j又没有访问过,就可以用了
used[j] = true;
if(girl[j] == 0 || find_(girl[j])){
girl[j] = x; // 这个配对是可以的
return true;
}
}
}
return false;
}
void solve(){
int total = 0;
int n;
cin >> n;
for(int i = 0; i < m; ++i){
int x, y;
cin >> x >> y;
line[x][y] = true;
}
for(int i = 1; i <= n; ++i){
memset(used, 0, sizeof(used)); // 每次都是再次初始化
if(find_(i)) total++; // 结果加一
}
cin >> total;
}
int main(){
solve();
return 0;
}