#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 << " ";
	}
}