#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int k , n ,m;
int boygirl[510][510];
int boy[520];
bool vis[520];
bool find(int x)
{
for(int i = 1; i <= m; i++)
{
if(boygirl[x][i] && !vis[i])
{
vis[i] = true;
if (boy[i] == -1)
{
boy[i] = x;
return true;
}
else if(find( boy[i] ))
{
boy[i] = x;
return true;
}
}
}
return false;
}
int main()
{
scanf("%d %d",&n ,&m);
memset(boygirl , 0 , sizeof(boygirl));
memset(boy , -1 , sizeof(boy));
for(int i = 1; i <= m; i++ )
{
int x , y;
scanf("%d %d",&x ,&y);
boygirl[x][y] = 1;
}
int ans = 0;
for(int i = 1; i <= n; i++)
{
memset(vis , false , sizeof(vis));
if( find(i) )
ans++;
}
printf("%d\n",ans);
return 0;
}