#include <bits/stdc++.h>
using namespace std;
typedef long long int ll ;
ll height[1000];
int b[1000];
void dfs(int node,vector <int> g[],int used[],int par[]){
used[node]=1;
for(auto u:g[node]){
if(used[u]==0){
par[u]=node;
dfs(u,g,used,par);
}
}
ll h=0;
for(auto c:g[node]){
if(c==par[node]){
// parent so dont count as height
}
h = max(h,height[c]);
}
height[node]=1+h;
}
int main(){
int n ;
cin>>n ;
vector<int> g[n+1];
int i=1;
while(i<=n){
int u,v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
i++;
}
int used[n+1]={0};
int par[n+1]={0};
dfs(1,g,used, par);
i=1;
while(i<=n){
cout<<height[i]<<"\n";
i++;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbCA7IApsbCBoZWlnaHRbMTAwMF07CmludCBiWzEwMDBdOwp2b2lkIGRmcyhpbnQgbm9kZSx2ZWN0b3IgPGludD4gZ1tdLGludCB1c2VkW10saW50IHBhcltdKXsKICAgIHVzZWRbbm9kZV09MTsKICAgIGZvcihhdXRvIHU6Z1tub2RlXSl7CiAgICAgICAgaWYodXNlZFt1XT09MCl7CiAgICAgICAgICAgIHBhclt1XT1ub2RlOwogICAgICAgICAgICBkZnModSxnLHVzZWQscGFyKTsKICAgICAgICB9CiAgICB9CiAgICBsbCBoPTA7CiAgICBmb3IoYXV0byBjOmdbbm9kZV0pewogICAgICAgIGlmKGM9PXBhcltub2RlXSl7CiAgICAgICAgICAgIC8vIHBhcmVudCBzbyBkb250IGNvdW50IGFzIGhlaWdodAogICAgICAgIH0KICAgICAgICBoID0gbWF4KGgsaGVpZ2h0W2NdKTsgCiAgICAgICAgCiAgICB9CiAgICBoZWlnaHRbbm9kZV09MStoOwp9CgppbnQgbWFpbigpewogICAgaW50IG4gOyAKICAgIGNpbj4+biA7IAogICAgdmVjdG9yPGludD4gZ1tuKzFdOwogICAgaW50IGk9MTsKICAgIHdoaWxlKGk8PW4pewogICAgICAgIGludCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGdbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGdbdl0ucHVzaF9iYWNrKHUpOwogICAgICAgIGkrKzsKICAgIH0KICAgIGludCB1c2VkW24rMV09ezB9OwogICAgaW50IHBhcltuKzFdPXswfTsKICAgIGRmcygxLGcsdXNlZCwgcGFyKTsKICAgIGk9MTsKICAgIHdoaWxlKGk8PW4pewogICAgICAgIGNvdXQ8PGhlaWdodFtpXTw8IlxuIjsKICAgICAgICBpKys7CiAgICB9Cn0KCg==