#include <iostream>
#include <set>

using namespace std;

int main()
{
	int n;
	int sp[2][12];
	multiset<int> cnt;

	while(cin >> n, n)
	{
		for(int i=0; i < n; i++) {
			cin >> sp[0][i];
		}
		int idx = 0;
		int count = -1;
		while(1)
		{
			int ii =  (idx + 1) % 2;
			cnt.clear();
			for(int i=0; i < n; i++) {
				cnt.insert(sp[idx][i]);
			}
			bool hit = true;
			for(int i=0; i < n; i++) {
				sp[ii][i] = cnt.count(sp[idx][i]);
				if(sp[idx][i] != sp[ii][i]) hit = false;
			}
			count++;
			if(hit) break;
			idx = ii;
		}
		cout << count << endl;
		for(int i=0; i < n-1; i++) {
			cout << sp[0][i] << ' ';
		}
		cout << sp[0][n-1] << endl;
	}
	return 0;
}