#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for (int i = a; i <= b; i++)
#define per(i,a,b) for (int i = a; i >= b; i--)
#define pii pair<int,int>
#define fi first
#define se second
#define endl '\n'
#define pb push_back
#define all(v) (v).begin(), (v).end()
const int MAXN = 1e6+10;
const int INF = 1e18+10;
const int MOD = 1e9+7;
vector<int> g[MAXN];
int dp[MAXN], dep[MAXN];
void dfs(int u, int p =-1) {
vector<int> ls={0};
for(int &v : g[u])if(v!=p) {
dep[v] += g[u].size()+dep[u]-1;
if(p!=-1) dep[v]--;
dfs(v,u);
ls.pb(dp[v]);
}
sort(ls.rbegin(), ls.rend());
if(ls.size()>1)dp[u] = ls[1]+ls.size()-1;
}
void solve() {
int n,m,t; cin >> n >> t >> m;
rep(i,1,n-1) {
int u,v; cin >> u >> v;
g[u].pb(v);
g[v].pb(u);
}
dfs(t);
cout << dp[m] +dep[m] << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0);cin.tie(nullptr);
int tt = 1;
//cin >> tt;
while(tt--) solve();
}