#include<iostream>
#include<map>

using namespace std;

int main(void) {
	map<int, int> m;
	int n, in[12], res;
	bool flg;
	int i;

	while(true) {
		cin >> n;
		if(n == 0) { break; }
		for(i = 0; i < n; i++) {
			cin >> in[i];
		}
		
		res = -1;
		do {
			flg = false;
			m.clear();
			res++;
			for(i = 0; i < n; i++) {
				if(m.count(in[i]) == 0) {
					m.insert(map<int, int>::value_type(in[i], 1));
				} else {
					m[in[i]]++;
				}
			}
			for(i = 0; i < n; i++) {
				if(in[i] != m[in[i]]) {
					flg = true;
					in[i] = m[in[i]];
				}
			}
		} while(flg);

		cout << res << endl;
		for(i = 0; i < n; i++) {
			cout << in[i];
			if(i != n-1) { cout << " "; }
		}
		cout << endl;
	}

	return 0;
}