#include <stdio.h>
#include <map>

using namespace std;

int main(){
  while(1){
    int n;
    scanf("%d", &n);
    if(n==0) break;

    int s[n];
    for(int i=0;i<n;i++) scanf("%d", s+i);

    int c = 0;

    int t;
    for(;;c++){
      map<int,int> m;
      for(int i=0;i<n;i++){
        if(m.find(s[i]) == m.end()){
          m.insert(pair<int,int>(s[i], 1));
        }else{
          m[s[i]]++;
        }
      }

      int k = 0;
      for(int i=0;i<n;i++){
        if(s[i] != m[s[i]]) k++;
        s[i] = m[s[i]];
      }
      
      if(k==0) break;
    }
    printf("%d\n", c);
    for(int i=0;i<n;i++){
      printf("%d", s[i]);
      if(i==n-1) printf("\n");
      else printf(" ");
    }
  }
}