//dalao详解: http://blog.youkuaiyun.com/dark_scope/article/details/8880547
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <algorithm>
#include <stack>
#include <math.h>
#include<iostream>
using namespace std;
#define INF 0xfffff;//0x代表十六进制
int line[510][510];
int boy[510];
int used[510];
bool cacu(int now, int n)
{
for (int i = 1; i <= n; i++)
{
if (line[now][i] && !used[i]) //跟他有关系而且没有搜索过
{
used[i] = 1;
if (!boy[i] || cacu(boy[i], n)) //男孩没有伴侣 或已顺延到伴侣
{
boy[i] = now;
return true;
}
}
}
return false;
}
int main()
{
int k, m, n;
while (cin >> k >> m >> n, k)
{
memset(line, 0, sizeof(line));
memset(boy, 0, sizeof(boy));
for (int i = 1; i <= k; i++)
{
int n1, n2;
cin >> n1 >> n2;
line[n1][n2] = 1;
}
int sum = 0;
for (int i = 1; i <= m; i++)
{
memset(used, 0, sizeof(used));
if (cacu(i, n)) sum++;
}
cout << sum << endl;
}
}