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

bool all_same(vector<int> v){
    int t = v[0];
    for(int i = 1; i < v.size(); i++){
        if(v[i]-t) return false;
    }
    return true;
}

int main(){
    int n;
    while(cin>>n,n){
        vector<int> v(n);
        for(int i = 0; i < n; i++){
            cin >> v[i];
        }
        int count = 0;
        while( true ){
            vector<int> freq(n, 0);
            for(int i = 0; i < v.size();i++){
                if( freq[i] ) continue;
                int f = 0;
                vector<int> ot;
                for(int j = 0; j < v.size(); j++){
                    if( v[i]==v[j] ){
                        f++;
                        ot.push_back(j);
                    }
                }
                for(int j = 0; j < ot.size(); j++){
                    freq[ ot[j] ] = f;
                }
            }
            if(v == freq) break;
            count++;
            v = freq;
        }
        cout << count << endl;
        cout << v[0];
        for(int i = 1; i < v.size(); i++){
            cout << ' ' << v[i];
        }
        cout << endl;
    }
    return 0;
}