//DWITE

#include <iostream>
#include <fstream>
using namespace std;

bool con[110][110];
int n;
bool done[110];

void rec(int i)
{
	done[i]=true;
		for (int x=1; x<=n; x++)
			if (con[i][x])
				if (!done[x])
					rec(x);
}

int main()
{
	ifstream f ("DATA5.txt");
	ofstream g ("OUT5.txt");
	int a,b,c,ans,n2;
		for (int t=0; t<5; t++)
		{
			f >> n >> n2;
			memset(con,false,sizeof(con));
			ans=0;
				for (a=0; a<n2; a++)
				{
					f >> b >> c;
					con[b][c]=true;
					con[c][b]=true;
				}
				for (a=1; a<=n; a++)
					for (b=a+1; b<=n; b++)
						if (con[a][b])
						{
							con[a][b]=false;
							con[b][a]=false;
							memset(done,false,sizeof(done));
							rec(1);
								for (c=1; c<=n; c++)
									if (!done[c])
									{
										ans++;
										break;
									}
							con[a][b]=true;
							con[b][a]=true;
						}
			g << ans << endl;
		}
	return(0);
}
