#include <iostream>

using namespace std;

bool isChanged(int *S, int *prevS, int n);

int main() {
    int n;
    int S[12], freq[101], prevS[12];

    while (cin >> n) {
        if(n == 0) break;

        for (int i=0; i<n; i++) {
            cin >> S[i];
        }

        int cont = -1;
        for (int i=0; i<12; i++) prevS[i] = -1;

        while (isChanged(S, prevS, n)) {
            for (int i=0; i<101; i++) freq[i] = 0;

            for (int i=0; i<n; i++) {
                freq[S[i]]++;
                prevS[i] = S[i];
            }

            for (int i=0; i<n; i++) {
                S[i] = freq[S[i]];
            }

            cont++;
        }

        cout << cont << endl;
        for (int i=0; i<n-1; i++) {
            cout << S[i] << " ";
        }
        cout << S[n-1] << endl;
    }

    return 0;
}

bool isChanged(int *S, int *prevS, int n) {
    for (int i=0; i<n; i++) {
        if(S[i] != prevS[i]) return true;
    }

    return false;
}