#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int bridge, shortest[102], grid[102][102], x[1002], y[1002], m, n, check[102][102];

void go(int a) {
	int i;
	for (i = 0; i < n; i++) {
		if (i == a)
			continue;
		if ((grid[a][i] == 1 || grid[i][a] == 1) && check[a][i] == 1) {
		//	check[i] = '1';
			check[a][i] = 0;
			check[i][a] = 0;
			shortest[i] = 1;
			go(i);
		//	check[i] = '0';
		}
	}
	return;
}

int main() {
	ifstream filein("DATA5.txt");
	ofstream fileout("OUT5.txt");
	int zzz, i, j, temp;
//	string check;
	for (zzz = 0; zzz < 5; zzz++) {
		bridge = 0;
		
		filein >> n >> m;

		for(i = 0; i < n; i++) {
			for (j = 0; j < n; j++) {
				grid[i][j] = 0;
				check[i][j] = 0;
			}
		}

		for (i = 0; i < m; i++) {
			filein >> x[i] >> y[i];
			x[i]--;
			y[i]--;
			grid[x[i]][y[i]] = 1;
			grid[y[i]][x[i]] = 1;
			check[x[i]][y[i]] = 1;
			check[y[i]][x[i]] = 1;
		}

		for (i = 0; i < m; i++) {
			grid[x[i]][y[i]] = 0;
			grid[y[i]][x[i]] = 0;
			
			for (j = 0; j < m; j++) {
				check[x[j]][y[j]] = 1;
				check[y[j]][x[j]] = 1;
			}
			check[x[i]][y[i]] = 0;
			check[y[i]][x[i]] = 0;
		//	check = "";
			for (j = 0; j < n; j++) {
				shortest[j] = 9999;
			//	check += '0';
			}
			for (j = 0; j < n; j++) {
		//		check[j] = '1';
				go(j);
		//		check[j] = '0';
			}
			for (j = 1; j < n; j++) {
				if (shortest[j] == 9999) {
					bridge++;
					break;
				}
			}
			grid[x[i]][y[i]] = 1;
			grid[y[i]][x[i]] = 1;
			check[x[i]][y[i]] = 1;
			check[y[i]][x[i]] = 1;
		}
		fileout << bridge << endl;
	}

	filein.close();
	fileout.close();
	return(0);
}


		
