#include <iostream>
#include <cstdio>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <sstream>
#include <map>
#include <set>

#define fi first
#define se second
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);

using namespace std;

int x3[1000000];
int x2[1000000];
int st1[1000000];
int f[100000];

vector <int> v[1000000];
int h,t=0;
set<int> st;

void check()
{
    //for (int i=0; h>i; i++) cout << st[i] << " ";
    //cout << endl;
    set<int> :: iterator t=st.begin();
    //cout << h/2 << endl;

    for (int i=0; h/2>i; i++, t++);

    x2[*t]++;
}

void dfs(int xx)
{
    if (f[xx]==t) return;
    st.insert(xx);
    st1[h++]=xx;
    f[xx]=t;
    if (h%2==1) check();
    int m1=v[xx].size();
    for (int j=0; m1>j; j++) dfs(v[xx][j]);
    st.erase(st1[h-1]);
    h--;
}

int main()
{
    fastio;
    srand(time(0));
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    int n,a,b,i,j;

    cin >> n;
    for (i=1; n>i; i++)
    {
        cin >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }

    for (i=1; n>=i; i++)
    {
        int n1=v[i].size();
        t++;
        f[i]=t;
        h=0;
        st.insert(i);
        st1[h++]=i;
        for (j=0; n1>j; j++) dfs(v[i][j]);
        st.clear();
    }

    for (i=1; n>=i; i++) cout << x2[i] << endl;

    return 0;
}