#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int n, m, v[100][100], x, y, cnt, ans = 0, dcnt = 1;
  vector<int> del;
  memset(v, 0, sizeof(v));
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    cin >> x >> y;
    v[x - 1][y - 1] = 1;
    v[y - 1][x - 1] = 1;
  }
  while (dcnt != 0) {
    dcnt = 0;
    for (int i = 0; i < n; i++) {
      cnt = 0;
      for (int j = 0; j < n; j++) cnt += v[i][j];
      if (cnt == 1) {
        dcnt++;
        del.push_back(i);
        for (int j = 0; j < n; j++) v[i][j] = 0;
      }
    }
    for (int i = 0; i < n; i++) {
      for (unsigned int j = 0; j < del.size(); j++) v[i][del[j]] = 0;
    }
    if (dcnt > 0) ans++;
    del.clear();
  }
  cout << ans;
  return 0;
}
