/// Hopcroft-Karp+Konig by muoii
/// vn.spoj.com/problems/NKBM/
#include <bits/stdc++.h>
using namespace std;
#define tag "spoj"
#define maxn 10007
#define oo 2000000007
#define meset(a,x) memset(a,x,sizeof(a))
#define loop(x) for(int LoOpEr=x;LoOpEr-->0;)
///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
int m,n,p;
int d[maxn],mx[maxn],my[maxn];
vector<int> adx[maxn],ady[maxn];
bool mvc[2][maxn];
queue<int> Q;
bool augment()
{
for(int u=1;u<=m;u++)
if(!mx[u])
{
Q.push(u);
d[u]=0;
}
else d[u]=oo;
d[0]=oo;
int u;
while(Q.size())
{
u=Q.front(),Q.pop();
for(const int &v: adx[u])
if(d[my[v]]==oo)
{
d[my[v]]=d[u]+1;
Q.push(my[v]);
}
}
return d[0]<oo;
}
bool augmenting(const int &u)
{
if(d[u]==oo) return false;
for (const int &v: adx[u])
if(my[v]==0 || (d[my[v]]==d[u]+1 && augmenting(my[v])))
{
mx[u]=v;
my[v]=u;
return true;
}
return false;
}
int HKarp()
{
int rep=0;
meset(mx,0);meset(my,0);
while(augment())
for(int u=1;u<=m;u++)
rep+=(mx[u])?0:augmenting(u);
return rep;
}
void konig()
{
meset(mvc,0);
queue<int> Qx,Qy;
for(int x=1;x<=m;x++) if(!mx[x]) Qx.push(x);
for(int y=1;y<=n;y++) if(!my[y]) Qy.push(y);
int x,y;
while(Qx.size()+Qy.size())
{
if(Qx.size())
{
x=Qx.front(),Qx.pop();
for(const int &v :adx[x])
if(!mvc[1][v])
mvc[1][v]=1,Qx.push(my[v]);
}
if(Qy.size())
{
y=Qy.front(),Qy.pop();
for(const int &u: ady[y])
if(!mvc[0][u])
mvc[0][u]=1,Qy.push(mx[u]);
}
}
for(int u=1;u<=m;u++)
if(mx[u] && !mvc[0][u] && !mvc[1][mx[u]])
mvc[0][u]=1;
cout<<"MIN MVC:\n";
for(int u=1;u<=m;u++) if(mvc[0][u]) cout<<u<<" ";
cout<<"\n";
for(int v=1;v<=n;v++) if(mvc[1][v]) cout<<v<<" ";
}
int main()
{
#ifdef dmdd
freopen(tag".inp","r",stdin); freopen(tag".out","w",stdout);
#endif // dmdd
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> m >> n >> p;
int x,y;
while (cin>>x>>y)
{
adx[x].push_back(y);
ady[y].push_back(x);
}
cout<<HKarp()<<"\n";
///konig();
return 0;
}
Ly8vIEhvcGNyb2Z0LUthcnArS29uaWcgYnkgbXVvaWkKCi8vLyB2bi5zcG9qLmNvbS9wcm9ibGVtcy9OS0JNLwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSB0YWcgInNwb2oiCiNkZWZpbmUgbWF4biAxMDAwNwojZGVmaW5lIG9vIDIwMDAwMDAwMDcKI2RlZmluZSBtZXNldChhLHgpIG1lbXNldChhLHgsc2l6ZW9mKGEpKQojZGVmaW5lIGxvb3AoeCkgZm9yKGludCBMb09wRXI9eDtMb09wRXItLT4wOykKLy8vPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgppbnQgbSxuLHA7CmludCBkW21heG5dLG14W21heG5dLG15W21heG5dOwp2ZWN0b3I8aW50PiBhZHhbbWF4bl0sYWR5W21heG5dOwpib29sIG12Y1syXVttYXhuXTsKcXVldWU8aW50PiBROwoKYm9vbCBhdWdtZW50KCkKewogICAgZm9yKGludCB1PTE7dTw9bTt1KyspCiAgICAgICAgaWYoIW14W3VdKQogICAgICAgIHsKICAgICAgICAgICAgUS5wdXNoKHUpOwogICAgICAgICAgICBkW3VdPTA7CiAgICAgICAgfQogICAgICAgIGVsc2UgZFt1XT1vbzsKCiAgICBkWzBdPW9vOwoKICAgIGludCB1OwogICAgd2hpbGUoUS5zaXplKCkpCiAgICB7CiAgICAgICAgdT1RLmZyb250KCksUS5wb3AoKTsKCiAgICAgICAgZm9yKGNvbnN0IGludCAmdjogYWR4W3VdKQogICAgICAgICAgICBpZihkW215W3ZdXT09b28pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRbbXlbdl1dPWRbdV0rMTsKICAgICAgICAgICAgICAgIFEucHVzaChteVt2XSk7CiAgICAgICAgICAgIH0KICAgIH0KICAgIHJldHVybiBkWzBdPG9vOwp9Cgpib29sIGF1Z21lbnRpbmcoY29uc3QgaW50ICZ1KQp7CiAgICBpZihkW3VdPT1vbykgcmV0dXJuIGZhbHNlOwoKICAgIGZvciAoY29uc3QgaW50ICZ2OiBhZHhbdV0pCiAgICAgICAgaWYobXlbdl09PTAgfHwgKGRbbXlbdl1dPT1kW3VdKzEgJiYgYXVnbWVudGluZyhteVt2XSkpKQogICAgICAgIHsKICAgICAgICAgICAgbXhbdV09djsKICAgICAgICAgICAgbXlbdl09dTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgIHJldHVybiBmYWxzZTsKfQoKaW50IEhLYXJwKCkKewogICAgaW50IHJlcD0wOwogICAgbWVzZXQobXgsMCk7bWVzZXQobXksMCk7CiAgICB3aGlsZShhdWdtZW50KCkpCiAgICAgICAgZm9yKGludCB1PTE7dTw9bTt1KyspCiAgICAgICAgICAgIHJlcCs9KG14W3VdKT8wOmF1Z21lbnRpbmcodSk7CiAgICByZXR1cm4gcmVwOwp9Cgp2b2lkIGtvbmlnKCkKewogICAgbWVzZXQobXZjLDApOwogICAgcXVldWU8aW50PiBReCxReTsKICAgIGZvcihpbnQgeD0xO3g8PW07eCsrKSBpZighbXhbeF0pIFF4LnB1c2goeCk7CiAgICBmb3IoaW50IHk9MTt5PD1uO3krKykgaWYoIW15W3ldKSBReS5wdXNoKHkpOwoKICAgIGludCB4LHk7CiAgICB3aGlsZShReC5zaXplKCkrUXkuc2l6ZSgpKQogICAgewogICAgICAgIGlmKFF4LnNpemUoKSkKICAgICAgICB7CiAgICAgICAgICAgIHg9UXguZnJvbnQoKSxReC5wb3AoKTsKICAgICAgICAgICAgZm9yKGNvbnN0IGludCAmdiA6YWR4W3hdKQogICAgICAgICAgICAgICAgaWYoIW12Y1sxXVt2XSkKICAgICAgICAgICAgICAgICAgICBtdmNbMV1bdl09MSxReC5wdXNoKG15W3ZdKTsKICAgICAgICB9CgogICAgICAgIGlmKFF5LnNpemUoKSkKICAgICAgICB7CiAgICAgICAgICAgIHk9UXkuZnJvbnQoKSxReS5wb3AoKTsKICAgICAgICAgICAgZm9yKGNvbnN0IGludCAmdTogYWR5W3ldKQogICAgICAgICAgICAgICAgaWYoIW12Y1swXVt1XSkKICAgICAgICAgICAgICAgICAgICBtdmNbMF1bdV09MSxReS5wdXNoKG14W3VdKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCB1PTE7dTw9bTt1KyspCiAgICAgICAgaWYobXhbdV0gJiYgIW12Y1swXVt1XSAmJiAhbXZjWzFdW214W3VdXSkKICAgICAgICAgICAgbXZjWzBdW3VdPTE7CgogICAgY291dDw8Ik1JTiBNVkM6XG4iOwogICAgZm9yKGludCB1PTE7dTw9bTt1KyspIGlmKG12Y1swXVt1XSkgY291dDw8dTw8IiAiOwogICAgY291dDw8IlxuIjsKICAgIGZvcihpbnQgdj0xO3Y8PW47disrKSBpZihtdmNbMV1bdl0pIGNvdXQ8PHY8PCIgIjsKfQppbnQgbWFpbigpCnsKICAgICNpZmRlZiBkbWRkCiAgICBmcmVvcGVuKHRhZyIuaW5wIiwiciIsc3RkaW4pOyBmcmVvcGVuKHRhZyIub3V0IiwidyIsc3Rkb3V0KTsKICAgICNlbmRpZiAvLyBkbWRkCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGNpbiA+PiBtID4+IG4gPj4gcDsKICAgIGludCB4LHk7CiAgICB3aGlsZSAoY2luPj54Pj55KQogICAgewogICAgICAgIGFkeFt4XS5wdXNoX2JhY2soeSk7CiAgICAgICAgYWR5W3ldLnB1c2hfYmFjayh4KTsKICAgIH0KCiAgICBjb3V0PDxIS2FycCgpPDwiXG4iOwogICAgLy8va29uaWcoKTsKICAgIHJldHVybiAwOwp9Cg==