#include <cstdio>

int n;
int s[15];
int s_new[15];
int count[105];





int main() {
  while(scanf("%d", &n), n) {
    // input
    for (int i=0; i<n; i++) {
      scanf("%d", &s[i]);
    }

    int loop_count = 0;

    // calc
    while (1) {
      loop_count++;
      
      for (int i=1; i<=100; i++) {
	count[i] = 0;
      }
      for (int i=0; i<n; i++) {
	count[s[i]]++;
    }
      for (int i=0; i<n; i++) {
	s_new[i] = count[s[i]];
      }
      int k;
      for (k=0; k<n; k++) {
	if (s[k] != s_new[k])
	  break;
      }


      // output
      if (k == n) {
	printf("%d\n", loop_count-1);
	printf("%d", s[0]);
	for (int j=1; j<n; j++) {
	  printf(" %d", s[j]);
	}
	printf("\n");
	break;
      }

      // copy
      for (int j=0; j<n; j++) {
	s[j] = s_new[j];
      }
    }
   
  }
}