#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友好分析 抄博友程序 二分图最大匹配数 背
int mp[1008][1008];
int vis[1008];
int link[1008];
int sum;
int n;
int tn,tm;
int find(int x)
{
//for(int i=1;i<n;i++)//wa
for(int i=1;i<=tm;i++)//背
{
if(mp[x][i]==1&& vis[i]==0)
{
vis[i]=1;
if(link[i]==0 || find(link[i]))
{
link[i]=x;
//sum++;
return 1;
}
}
}
return 0;
}
int main()
{
while(1)
{
cin>>tn;
if(tn==0)
{
break;
}
memset(mp,0,sizeof(mp));
memset(link,0,sizeof(link));
cin>>tm>>n;
for(int i=0;i<n;i++)
{
int a,b,c;
cin>>a>>b>>c;
if(b*c!=0)//b 和 c都不为 0
{
mp[b][c]=1;//单向
}
}
sum=0;
for(int i=1;i<=tn;i++)//抄博友程序 背
{
memset(vis,0,sizeof(vis));
if(find(i))
{
sum++;//抄博友程序 背
}
}
cout<<sum<<endl;
}
return 0;
}