#include <iostream>
#include <map>
#include <string.h>
using namespace std;

int main() {
	int n ;
	while(1)
	{
		cin >> n ; if(!n) break;
		int cnt=0; map<int,int> m;
		int a[12]; for(int i=0;i<n;i++) cin >> a[i] ;
		while(1)
		{
			for(int i=0;i<n;i++) if(m.find(a[i])!=m.end()) m[a[i]]++; else m[a[i]]=1;
			int b[12];
			for(int i=0;i<n;i++) b[i]=m[a[i]];
			bool same=true;
			for(int i=0;i<n;i++) if(a[i]!=b[i]) {same=false; break;}
			if(same) break;
			cnt++; memcpy(a,b,sizeof(b)); m.clear();
		}
		cout << cnt << '\n' ;
		for(int i=0;i<n;i++) {if(i) cout << ' ' ; cout << a[i];}
		cout << '\n' ;
	}
}