#include"iostream"
#include"string.h"
#include"vector"
using namespace std;
int vis[105],B[105];
vector<int>V[105];
bool Match(int id)
{
for(int ge=0;ge<V[id].size();ge++)
{
int t=V[id][ge];
if(vis[t]==1)continue;
vis[t]=1;
if(B[t]==-1||Match(B[t]))
{
B[t]=id;
return 1;
}
}
return 0;
}
int main()
{
int M,N;
cin>>M>>N;
int t1,t2;
memset(B,-1,sizeof(B));
while(cin>>t1>>t2&&t1!=-1&&t2!=-1)
{
V[t1].push_back(t2-M);
}
int sum=0;
for(int i=1;i<=M;i++)
{
memset(vis,-1,sizeof(vis));
if(Match(i))sum++;
}
cout<<sum<<"\n";
}