#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 1LL<<62
#define inf 1000000007

ll n,u,v;
ll t[100010],a[100010];
vector<ll>ch[100010];
void dep1(ll now,ll cnt){
	for(ll i=0;i<ch[now].size();i++){
		ll next=ch[now][i];
		if(t[next]!=0){
			continue;
		}
		t[next]=cnt+1;
		dep1(next,cnt+1);
	}
}
void dep2(ll now,ll cnt){
	for(ll i=0;i<ch[now].size();i++){
		ll next=ch[now][i];
		if(a[next]!=0){
			continue;
		}
		a[next]=cnt+1;
		dep2(next,cnt+1);
	}
}
int main() {
	cin>>n>>u>>v;
	u--;v--;
	for(ll i=0;i<n-1;i++){
		ll x,y;
		cin>>x>>y;
		x--;y--;
		ch[x].push_back(y);
		ch[y].push_back(x);
	}
	t[u]=a[v]=1;
	dep1(u,1);
	dep2(v,1);
	ll ans=0;
	for(ll i=0;i<n;i++){
		if(a[i]>t[i]){
			ans=max(ans,a[i]);
		}
	}
	cout << ans-2;
	return 0;
}