#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
int deg[1000];
int arr[1000][1000];
int jo[1000];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int node, edge;
  cin >> node >> edge;
  for (int i = 0; i < edge; i++) {
    int n1, n2;
    cin >> n1 >> n2;
    arr[n1 - 1][n2 - 1] = true;
    arr[n2 - 1][n1 - 1] = true;
    deg[n1 - 1]++;
    deg[n2 - 1]++;
  }
  int res = 0;
  int i, j;
  while (true) {
    int k = 0;
    for (i = 0; i < node; i++) {
      if (deg[i] == 1) {
        jo[k++] = i;
        deg[i] = 0;
      }
    }
    if (k == 0) {
      break;
    }
    res++;
    for (i = 0; i < k; i++) {
      deg[jo[i]] = 0;
      for (j = 0; j < node; j++) {
        if (arr[jo[i]][j]) deg[j]--;
      }
    }
  }
  cout << res << "\n";
  cerr << "Time : " << (float)clock() / CLOCKS_PER_SEC << " s" << endl;
  return 0;
}
