#include<iostream>
#include<algorithm>
#include<vector>
#include<map>

using namespace std;

int main(){
	int N;
	while(cin>>N,N){
		vector<int> num(N);
		for(int i=0;i<N;i++){
			int a;
			cin>>a;
			num[i]=a;
		}
		int cnt=0;
		while(1){
			map<int,int> mp;
			vector<int>::iterator it=num.begin();
			for(;it!=num.end();it++){
				mp[*it]++;
			}
			bool flag=false;
			for(int i=0;i<N;i++){
				if(num[i]!=mp[num[i]]){
					flag=true;
				}
			}
			if(!flag){
				break;
			}
			for(int i=0;i<N;i++){
				num[i]=mp[num[i]];
			}
			cnt++;
		}
		cout<<cnt<<endl;
		for(int i=0;i<N;i++){
			cout<<num[i];
			if(i!=N-1){
				cout<<' ';
			}
		}
		cout<<endl;
	}
	return 0;
}