#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, x, y, la[N], ne[N * 2], to[N * 2], js, an[N], d[N], fa[N];
int f[N], fx[N], wz;
void get(int o) {
  int tt = 0;
  for (int i = 1, _e = n; i <= _e; i++) f[i] = fx[i] = 0;
  for (int i = n, _e = 1; i >= _e; i--) {
    x = d[i];
    y = fa[x];
    if (++f[x] + fx[x] >= o) tt++, f[x] = 0;
    if (f[x] > f[y])
      fx[y] = f[y], f[y] = f[x];
    else
      (f[x] > fx[y] ? fx[y] = f[x] : 0);
  }
  an[o] = tt;
}
void calc(int l, int r, int vl, int vr) {
  if (r - l <= 1) return;
  if (vl == vr) {
    for (int i = l, _e = r; i <= _e; i++) an[i] = vl;
    return;
  }
  int mi = l + r >> 1;
  get(mi);
  int vm = an[mi];
  calc(l, mi, vl, vm);
  calc(mi, r, vm, vr);
}
int main() {
  scanf("%d", &n);
  for (int i = 2, _e = n; i <= _e; i++)
    scanf("%d%d", &x, &y), (ne[++js] = la[x], la[x] = js, to[js] = y),
        (ne[++js] = la[y], la[y] = js, to[js] = x);
  for (int t = 0, w = d[1] = 1; x = d[t + 1], t++ < w;)
    for (int i = la[x]; i; i = ne[i])
      if (to[i] != fa[x]) fa[to[i]] = x, d[++w] = to[i];
  get(n);
  an[1] = n;
  calc(1, n, n, an[n]);
  for (int i = 1, _e = n; i <= _e; i++) printf("%d\n", an[i]);
}
