#include<iostream>
#include<cstring>
using namespace std;
int x[32000][500], n;
int main() {
	while (true) {
		memset(x, 0, sizeof(x));
		cin >> n;
		if (!n) { break; }
		for (int i = 0; i < n; i++) {
			cin >> x[0][i];
		}
		for (int i = 1; i < 30000; i++) {
			for (int j = 0; j < n; j++) {
				for (int k = 0; k < n; k++) {
					if (x[i - 1][k] == x[i - 1][j]) {
						x[i][j]++;
					}
				}
			}
		}
		for (int i = 1; i < 30000; i++) {
			for (int j = 0; j < n; j++) {
				if (x[i - 1][j] != x[i][j]) { goto E; }
			}
			cout << i - 1 << endl; 
			for (int j = 0; j < n; j++) {
				if (j) { cout << ' '; } cout << x[i][j];
			}
			cout << endl;
			goto owata;
		E:;
		}
	owata:;
	}
}