#include<stdio.h>
#include<algorithm>
using namespace std;
int p[3100];
int q[3100];
double A[510][3100];
double ABS(double a){return max(a,-a);}
double EPS=1e-9;
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
	for(int i=0;i<b;i++){
		scanf("%d%d",p+i,q+i);
		p[i]--;q[i]--;
		A[p[i]][i]+=1.0;
		A[q[i]][i]-=1.0;
	}
	int rank=b;
	int col=0;
	/*for(int i=0;i<a;i++){
		for(int j=0;j<b;j++)printf("%.0f ",A[i][j]);
		printf("\n");
	}*/
	for(int i=0;i<a;i++){
		int at=-1;
		while(col<b){
			for(int j=i;j<a;j++){
				if(ABS(A[j][col])>EPS){
					at=j;break;
				}
			}
			if(~at)break;
			col++;
		}
		if(col>=b)break;
		rank--;
		for(int j=0;j<b;j++)swap(A[i][j],A[at][j]);
		double ks=A[i][col];
		for(int j=0;j<b;j++)A[i][j]/=ks;
		for(int j=i+1;j<a;j++){
			double t=A[j][col];
			for(int k=0;k<b;k++)A[j][k]-=t*A[i][k];
		}
		col++;
		/*for(int k=0;k<a;k++){
			for(int j=0;j<b;j++)printf("%.0f ",A[k][j]);
			printf("\n");
		}*/
	}
	printf("%d\n",rank);
}