#include <bits/stdc++.h>
using namespace std;
bool compare(const pair<long long int, long long int> &a,
             const pair<long long int, long long int> &b) {
  if (a.first != b.first) return a.first > b.first;
  return a.second > b.second;
}
int main() {
  int t = 1;
  while (t--) {
    long long int n, m, i, x, y, r = 0, ans = 0;
    cin >> n >> m;
    map<long long int, set<long long int>> v;
    for (i = 0; i < m; i++) {
      cin >> x >> y;
      v[x].insert(y);
      v[y].insert(x);
    }
    vector<long long int> s;
    while (1) {
      r = 0;
      for (i = 1; i <= n; i++) {
        for (int j = 0; j < s.size(); j++) v[i].erase(s[j]);
      }
      for (i = 1; i <= n; i++) {
        if (v[i].size() == 1) {
          v.erase(i);
          r = 1;
          s.push_back(i);
        }
      }
      if (r == 0) break;
      ans++;
    }
    cout << ans;
  }
  return 0;
}
