#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
using std::chrono::high_resolution_clock;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int, int>pi;
typedef pair<ll, ll>pl;
typedef vector<pi>vpi;
typedef vector<pl>vpl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<string> vs;
typedef vector<bool> vb;
const double PI = acos(-1);
const int oo = 1e9 + 7;
const int MOD = 1e9 + 7;
const int N = 1e5 + 7;
#define endl '\n'
#define all(v) (v).begin(),(v).end()
#define rall(v) (v).rbegin(),(v).rend()
#define read(v) for (auto& it : v) scanf("%d", &it);
#define readL(v) for (auto& it : v) scanf("%lld", &it);
#define print(v) for (auto& it : v) printf("%d ", it); puts("");
#define printL(v) for (auto& it : v) printf("%lld ", it); puts("");
int t = 1;
auto Time() {
return high_resolution_clock::now();
}
vvi g;
bool ok;
int n, q;
vi depth;
vb vis;
void DFS(int u, int cnt, int sz, int p) {
if (vis[u])
cnt++;
if (cnt == sz) {
ok = true;
return;
}
for (auto& v : g[u])
if (v != p)
DFS(v, cnt, sz, u);
}
void calc(int u, int curDepth, int p) {
depth[u] = curDepth;
for (auto& v : g[u])
if (v != p)
calc(v, curDepth + 1, u);
}
void solve() {
scanf("%d", &n);
g.clear();
g.resize(n);
depth.clear();
depth.resize(n + 1);
for (int i = 0; i < n - 1; i++) {
int u, v;
scanf("%d %d", &u, &v);
g[--u].push_back(--v);
g[v].push_back(u);
}
calc(0, 0, -1);
depth[0] = -1;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//scanf("%d", &t);
while (t--) solve();
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgc3RkOjpjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bDsKdHlwZWRlZiBwYWlyPGludCwgaW50PnBpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPnBsOwp0eXBlZGVmIHZlY3RvcjxwaT52cGk7CnR5cGVkZWYgdmVjdG9yPHBsPnZwbDsKdHlwZWRlZiB2ZWN0b3I8dmk+IHZ2aTsKdHlwZWRlZiB2ZWN0b3I8dmw+IHZ2bDsKdHlwZWRlZiB2ZWN0b3I8c3RyaW5nPiB2czsKdHlwZWRlZiB2ZWN0b3I8Ym9vbD4gdmI7CmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpjb25zdCBpbnQgb28gPSAxZTkgKyA3Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IE4gPSAxZTUgKyA3OwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGFsbCh2KSAodikuYmVnaW4oKSwodikuZW5kKCkKI2RlZmluZSByYWxsKHYpICh2KS5yYmVnaW4oKSwodikucmVuZCgpCiNkZWZpbmUgcmVhZCh2KSBmb3IgKGF1dG8mIGl0IDogdikgc2NhbmYoIiVkIiwgJml0KTsKI2RlZmluZSByZWFkTCh2KSBmb3IgKGF1dG8mIGl0IDogdikgc2NhbmYoIiVsbGQiLCAmaXQpOwojZGVmaW5lIHByaW50KHYpIGZvciAoYXV0byYgaXQgOiB2KSBwcmludGYoIiVkICIsIGl0KTsgcHV0cygiIik7CiNkZWZpbmUgcHJpbnRMKHYpIGZvciAoYXV0byYgaXQgOiB2KSBwcmludGYoIiVsbGQgIiwgaXQpOyBwdXRzKCIiKTsKaW50IHQgPSAxOwphdXRvIFRpbWUoKSB7CglyZXR1cm4gaGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKfQp2dmkgZzsKYm9vbCBvazsKaW50IG4sIHE7CnZpIGRlcHRoOwp2YiB2aXM7CnZvaWQgREZTKGludCB1LCBpbnQgY250LCBpbnQgc3osIGludCBwKSB7CglpZiAodmlzW3VdKQoJCWNudCsrOwoJaWYgKGNudCA9PSBzeikgewoJCW9rID0gdHJ1ZTsKCQlyZXR1cm47Cgl9Cglmb3IgKGF1dG8mIHYgOiBnW3VdKQoJCWlmICh2ICE9IHApCgkJCURGUyh2LCBjbnQsIHN6LCB1KTsKfQp2b2lkIGNhbGMoaW50IHUsIGludCBjdXJEZXB0aCwgaW50IHApIHsKCWRlcHRoW3VdID0gY3VyRGVwdGg7Cglmb3IgKGF1dG8mIHYgOiBnW3VdKQoJCWlmICh2ICE9IHApCgkJCWNhbGModiwgY3VyRGVwdGggKyAxLCB1KTsKfQp2b2lkIHNvbHZlKCkgewoJc2NhbmYoIiVkIiwgJm4pOwoJZy5jbGVhcigpOwoJZy5yZXNpemUobik7CglkZXB0aC5jbGVhcigpOwoJZGVwdGgucmVzaXplKG4gKyAxKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgewoJCWludCB1LCB2OwoJCXNjYW5mKCIlZCAlZCIsICZ1LCAmdik7CgkJZ1stLXVdLnB1c2hfYmFjaygtLXYpOwoJCWdbdl0ucHVzaF9iYWNrKHUpOwoJfQoJY2FsYygwLCAwLCAtMSk7CglkZXB0aFswXSA9IC0xOwp9CmludCBtYWluKCkgewojaWZuZGVmIE9OTElORV9KVURHRQoJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiNlbmRpZgoJLy9zY2FuZigiJWQiLCAmdCk7Cgl3aGlsZSAodC0tKSBzb2x2ZSgpOwp9