#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#ifdef ONLINE_JUDGE
const int maxn = 1e5+23;
#else
const int maxn = 1e5+23;
#endif
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;
}
