#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

bool check(vector<int> &a,vector<int> &b)
{
	if(a.size()!=b.size())return true;
	for(int i=0;i<a.size();i++)if(a[i]!=b[i])return true;
	return false;
}

int main()
{
	int n;
	while(cin>>n&&n)
	{
		vector<int> a,b;
		for(int i=0;i<n;i++)
		{
			int x;
			cin>>x;
			a.push_back(x);
		}
		int ans;
		for(ans=-1;check(a,b);ans++)
		{
			b.clear();
			for(int i=0;i<a.size();i++)
			{
				b.push_back(count(a.begin(),a.end(),a[i]));
			}
			swap(a,b);
		}
		cout<<ans<<endl;
		for(int i=0;i<a.size();i++)
		{
			cout<<(i==0?"":" ")<<a[i];
		}
		cout<<endl;
	}
}