#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 23;
vector<int> g[maxn];
int n, s, t;
int d[2][maxn];
void dfs(int p, int fa, int id, int dep) {
  d[id][p] = dep;
  for (int i : g[p]) {
    if (i == fa) continue;
    dfs(i, p, id, dep + 1);
  }
}
int main() {
  cin >> n >> s >> t;
  for (int i = 0, u, v; i < n - 1; i++) {
    scanf("%d%d", &u, &v);
    g[u].push_back(v);
    g[v].push_back(u);
  }
  dfs(s, 0, 0, 0);
  dfs(t, 0, 1, 0);
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    if (d[0][i] < d[1][i]) ans = max(ans, d[1][i] - 1);
  }
  cout << ans;
}
