#include <iostream>
#include <vector>
using namespace std;
const int nax = 10;
vector<int> edges[nax];
vector<int> vis(nax);
vector<int> sizes;
void dfs(int a) {
vis[a] = 1;
for(int b : edges[a]) {
if(vis[b] != 1) {
dfs(b);
}
}
int cnt = 0;
for(int x : vis) {
if(x == 1) {
cnt++;
}
}
sizes.push_back(cnt);
for(int x : vis) {
x = 0;
}
}
int main() {
int m;
cin >> m;
for(int i = 0; i < m; ++i) {
int a, b;
cin >> a >> b;
edges[a].push_back(b);
edges[b].push_back(a);
}
for(int i = 0; i < nax; ++i) {
dfs(i);
}
for(int x : sizes) {
cout << x << " ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBuYXggPSAxMDsKCnZlY3RvcjxpbnQ+IGVkZ2VzW25heF07CnZlY3RvcjxpbnQ+IHZpcyhuYXgpOwoKdmVjdG9yPGludD4gc2l6ZXM7Cgp2b2lkIGRmcyhpbnQgYSkgewogICAgdmlzW2FdID0gMTsKICAgIGZvcihpbnQgYiA6IGVkZ2VzW2FdKSB7CiAgICAJaWYodmlzW2JdICE9IDEpIHsKICAgIAkgICAgZGZzKGIpOwogICAgCX0KICAgIH0KICAgIGludCBjbnQgPSAwOwogICAgZm9yKGludCB4IDogdmlzKSB7CiAgICAJaWYoeCA9PSAxKSB7CiAgICAJCWNudCsrOwogICAgCX0KICAgIH0KICAgIHNpemVzLnB1c2hfYmFjayhjbnQpOwogICAgZm9yKGludCB4IDogdmlzKSB7CiAgICAJeCA9IDA7CiAgICB9Cn0KCmludCBtYWluKCkgewoJaW50IG07CgljaW4gPj4gbTsKCWZvcihpbnQgaSA9IDA7IGkgPCBtOyArK2kpIHsKCQlpbnQgYSwgYjsKCQljaW4gPj4gYSA+PiBiOwoJCWVkZ2VzW2FdLnB1c2hfYmFjayhiKTsKCQllZGdlc1tiXS5wdXNoX2JhY2soYSk7Cgl9Cglmb3IoaW50IGkgPSAwOyBpIDwgbmF4OyArK2kpIHsKCQlkZnMoaSk7Cgl9Cglmb3IoaW50IHggOiBzaXplcykgewoJCWNvdXQgPDwgeCA8PCAiICI7Cgl9Cn0=