#include <bits/stdc++.h>
using namespace std;
int a[100001], p[100001];
int main() {
  int n, i, Max = 0;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", a + i);
    p[a[i]]++;
    Max = max(Max, a[i]);
  }
  for (i = 1; i < Max; i++)
    if (p[i] < p[i + 1]) {
      printf("-1");
      return 0;
    }
  printf("%d\n", p[1]);
  for (i = 0; i < n; i++) {
    if (i) printf(" ");
    printf("%d", p[a[i]]--);
  }
  return 0;
}
