usingnamespace std; constint N = 510, M = 1e5 + 10; int n1, n2, m; int h[N], e[M], ne[M], idx; int match[N]; bool st[N]; voidadd(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++; }
boolfind(int x) { for (int i = h[x]; ~i; i = ne[i]) { int j = e[i]; if (!st[j]) { st[j] = true; if (match[j] == 0 || find(match[j])) { match[j] = x; returntrue; } } } returnfalse; }
intmain() { scanf("%d%d%d", &n1, &n2, &m); memset(h , -1, sizeof h); while(m --) { int a, b; scanf("%d%d%d", &a, &b); add(a, b); } int res = 0; for (int i = 1; i <= n1; i++) { memset(st, false, sizeof st); if (find(i)) res ++; } printf("%d\n", res);