#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
const int M=2e5+5;
const int inf=2147483647;
const long long lof=9223372036854775807;
#define ll long long
#define bug cout<<"...here...\n"
#define mem(a,b) memset(a,b,sizeof a)
ll dis[105][105],tot,n,x,y,ans,maxx,vis[105];
void floyd(){
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
ll dfs(ll x,ll dep){
vis[x]=1;
ll sum=0,cnt=0;
for(int i=1;i<=n;i++){
if(dis[x][i]!=inf&&i!=x&&!vis[i]){
cnt++;
sum+=dfs(i,dep+1);
}
}
ans=max(ans,dep);
maxx=max(sum,maxx);
return cnt;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i!=j) dis[i][j]=inf;
for(int i=1;i<n;i++){
cin>>x>>y;
dis[x][y]=1;
dis[y][x]=2;
}
dfs(1,1);
floyd();
cout<<ans<<'\n'<<maxx<<'\n';
int x,y;
cin>>x>>y;
cout<<dis[x][y];
return 0;
}