#include<bits/stdc++.h>
using namespace std;
const int maxn = 1001;
int n;
int d[maxn];
bool visited[maxn];
vector<int> ke[1001];
void inp(){
cin >> n ;
for(int i = 1 ; i <= n - 1 ; i ++){
int x,y;
cin >> x >> y;
ke[x].push_back(y);
ke[y].push_back(x);
}
}
void BFS(int u){
visited[u] = true;
queue<int> q;
q.push(u);
d[u] = 0;
while(!q.empty()){
int p = q.front();
q.pop();
for(int x : ke[p]){
if(!visited[x]){
d[x] = d[p] + 1;
visited[x] = true;
q.push(x);
}
}
}
}
int main(){
inp();
BFS(1);
for(int i = 1 ; i <= n ; i++){
cout << d[i] << " ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG1heG4gPSAxMDAxOyAKaW50IG47CmludCBkW21heG5dOwpib29sIHZpc2l0ZWRbbWF4bl07CnZlY3RvcjxpbnQ+IGtlWzEwMDFdOwp2b2lkIGlucCgpewogICAgY2luID4+IG4gOwogICAgZm9yKGludCBpID0gMSA7IGkgPD0gbiAtIDEgOyBpICsrKXsKICAgICAgICBpbnQgeCx5OwogICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAga2VbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGtlW3ldLnB1c2hfYmFjayh4KTsKICAgIH0KfQp2b2lkIEJGUyhpbnQgdSl7CiAgICB2aXNpdGVkW3VdID0gdHJ1ZTsKICAgIHF1ZXVlPGludD4gcTsgCiAgICBxLnB1c2godSk7CiAgICBkW3VdID0gMDsKICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgIGludCBwID0gcS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgZm9yKGludCB4IDoga2VbcF0pewogICAgICAgICAgICBpZighdmlzaXRlZFt4XSl7CiAgICAgICAgICAgICAgICBkW3hdID0gZFtwXSArIDE7CiAgICAgICAgICAgICAgICB2aXNpdGVkW3hdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHEucHVzaCh4KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpewogICAgaW5wKCk7CiAgICBCRlMoMSk7CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKXsKICAgICAgICBjb3V0IDw8IGRbaV0gPDwgIiAiOwogICAgfQp9