#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
  int N,u,v;
  cin>>N>>u>>v;
  u--,v--;
  vector<vector<int>> A(N);
  for(int i=0;i<N-1;i++){
    int a,b;
    cin>>a>>b;
    A[a-1].push_back(b-1);
    A[b-1].push_back(a-1);
  }
  vector<int> B(N,-1),C(N,-1);
  queue<int> Q;
  B[v]=0;
  Q.push(v);
  while(!Q.empty()){
    int I=Q.front();
    Q.pop();
    for(int i:A[I])
      if(B[i]==-1){
        B[i]=B[I]+1;
        Q.push(i);
      }
  }
  C[u]=0;
  Q.push(u);
  while(!Q.empty()){
    int I=Q.front();
    Q.pop();
    for(int i:A[I])
      if(C[i]==-1){
        C[i]=C[I]+1;
        Q.push(i);
      }
  }
  int ans=0;
  for(int i=0;i<N;i++){
    if(B[i]>C[i])ans=max(ans,B[i]-1);
  }
  cout<<ans<<endl;
}