#include <iostream>
#include <map>
using namespace std;

int a[12];
int udo[12];
int n;

void cp(void){
	for(int i=0;i<12;i++){
		udo[i]=a[i];
	}
}

bool check(void){
	for(int i=0;i<12;i++){
		if(udo[i]!=a[i])return false;
	}
	return true;
}

int main(void){
	int c;
	while(cin>>n,n){
		for(int i=0;i<n;i++){cin>>a[i];udo[i]=0;}
		for(c=0;!check();c++){
			map<int,int> m;
			for(int i=0;i<n;i++){
				m[a[i]]++;
			}
			cp();
			for(int i=0;i<n;i++){
				a[i]=m[a[i]];
			}
			if(check())break;
		}
		cout<<c<<endl;
		for(int i=0;i<n;i++){
			if(i!=n-1)cout<<a[i]<<" ";
			else cout<<a[i];
		}
		cout<<endl;
	}
}