#include <bits/stdc++.h>
using namespace std;
vector <int> so[110];
int fa[110], ww[110];
int d, w, l;
int x, y;
bool flag;
void dfs(int k, int h) {
d = max(d, h);
ww[h]++;
int sizes = so[k].size();
if (sizes == 0) {
return ;
}
for (int i = 0; i < sizes; i++) {
dfs(so[k][i], h + 1);
}
}
int main() {
int n;
cin >> n;
for (int i = 1; i < n; i++) {
int u, v;
cin >> u >> v;
if (v < u) {
swap(u, v);
}
so[u].push_back(v);
fa[v] = u;
}
cin >> x >> y;
dfs(1, 1);
cout << d << endl;
for (int i = 1; i <= d; i++) {
w = max(w, ww[i]);
}
cout << w << endl;
int now = x;
while (now != 1) {
l += 2;
now = fa[now];
}
now = y;
while (now != 1) {
l += 1;
now = fa[now];
}
cout << l;
return 0;
}