WA
#include<bits/stdc++.h>
const int N=200005;
int n,tot,head[N],tail[N],nxt[N],d[N],sum[N],size[N];
void add_edge(int u,int v)
{
tail[++tot]=v;
nxt[tot]=head[u];
head[u]=tot;
}
bool vis[N];
void dfs(int x)
{
vis[x]=1;
for(int i=head[x];i;i=nxt[i])
{
int ed=tail[i];
if(!vis[ed])
{
d[ed]=d[x]+1;
dfs(ed);
size[x]+=size[ed];
}
}
}
void dfs2(int x)
{
for(int i=head[x];i;i=nxt[i])
{
int ed=tail[i];
if(sum[ed]==0)
{
sum[ed]=sum[x]-size[ed]+(n-size[ed]);
dfs2(ed);
}
}
}
int main()
{
std::cin>>n;
for(int i=1;i<n;i++)
{
int u,v;
std::cin>>u>>v;
add_edge(u,v);
add_edge(v,u);
}
dfs(1);
for(int i=2;i<=n;i++) sum[1]+=d[i];
dfs2(1);
int minn=1e9,id;
for(int i=2;i<=n;i++)
{
std::cout<<sum[i]<<" ";
if(sum[i]<minn)
{
minn=sum[i];
id=i;
}
}
std::cout<<id<<" "<<minn;
}