#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>

using namespace std;

#define rep(i,n) for(int i=0; i<(n); i++)
#define repc(i,s,e) for(int i=(s); i<(e); i++)
#define pb(n) push_back((n))
#define mp(n,m) make_pair((n),(m))
#define all(r) r.begin(),r.end()
#define fi first
#define se second

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<ll> vl;
typedef vector<vl> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;




int main() {
	int n;
	while (cin >> n&&n > 0) {
		vi v(n);
		rep(i, n)cin >> v[i];
		int ans = 0;
		while (1) {
			map<int, int> m;
			rep(i, n)m[v[i]] += 1;
			vi v2;
			rep(i, n) {
				v2.push_back(m[v[i]]);
			}
			if (v == v2) {
				break;
			}
			v = v2;
			ans++;
		}
		cout << ans << endl;
		rep(i, n) {
			if (i != 0)cout << " ";
			cout << v[i];
		}
		cout << endl;
	}
}