#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const int N = 1e5 + 5;
vector<int> t[N];

int d[N][2];

void dfs(int c, int p, int dist, int type){
	d[c][type] = dist;
	for(int a:t[c]){
		if(a != p)dfs(a,c,dist+1,type);
	}
}

int main(){
	cin.tie(0);
	cout.tie(0);
	ios_base::sync_with_stdio(0);
	int n,u,v;
	cin >> n >> u >> v;
	--u,--v;
	for(int i = 0;i < n-1;++i){
		int x,y;
		cin >> x >> y;
		--x,--y;
		t[x].push_back(y);
		t[y].push_back(x);
	}
	dfs(u,-1,0,0);
	dfs(v,-1,0,1);
	int ans = 0;
	for(int i = 0;i < n; ++i){
		if(d[i][0] < d[i][1]){
			ans = max(ans, d[i][1] - 1);	
		}
	}
	cout << ans << '\n';
}
