#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, m, k, t = 1, x, y, p, q, r, i, j, d, f = 0;
  long long cnt[100005] = {0};
  while (t--) {
    cin >> n;
    bool flag = true;
    long long a[n], maxf = 0;
    for (i = 0; i < n; i++) {
      cin >> a[i];
      cnt[a[i]]++;
      maxf = max(maxf, cnt[a[i]]);
    }
    for (i = 2; i <= 1e5; i++) {
      if (cnt[i] > cnt[i - 1]) flag = false;
    }
    if (!flag)
      cout << -1 << "\n";
    else {
      cout << maxf << "\n";
      for (i = 0; i < n; i++) {
        cout << cnt[a[i]]-- << " ";
      }
    }
  }
}
