#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

const int INF=0x3f3f3f3f;
const ll INFL=0x3f3f3f3f3f3f3f3f;
const int MOD=1000000007;

vector<int>E[200000];
int d[200000];
int d2[200000];

void dfs(int v,int p){
	if(p!=-1)d[v]=d[p]+1;
	for(int u:E[v]){
		if(u==p)continue;
		dfs(u,v);
	}
}

void dfs2(int v,int p){
	if(p!=-1)d2[v]=d2[p]+1;
	for(int u:E[v]){
		if(u==p)continue;
		dfs2(u,v);
	}
}

int main(){
	int n,a,b;cin>>n>>a>>b;a--;b--;
	rep(i,n-1){
		int u,v;scanf("%d%d",&u,&v);u--;v--;
		E[u].push_back(v);
		E[v].push_back(u);
	}
	dfs(a,-1);
	dfs2(b,-1);
	int Max=0;
	rep(i,n){
		if(d[i]<d2[i]){
			Max=max(Max,d2[i]);
		}
	}
	cout<<Max-1<<endl;
}