#include <bits/stdc++.h>
using namespace std;
void smain();
int main() {
  ios_base::sync_with_stdio(0);
  smain();
  return 0;
}
long long n;
long long a[200001], b[200001];
void merge_sort(long long l, long long r) {
  if (l == r) return;
  if (l == r - 1) {
    if (a[l] < a[r]) {
      a[r] -= 1, a[l] += 1;
      swap(a[l], a[r]);
    }
    return;
  }
  long long m = (l + r) / 2;
  merge_sort(l, m);
  merge_sort(m + 1, r);
  long long i1 = l, i2 = m + 1, k = 0, add = 0;
  for (; i1 <= m || i2 <= r; ++k) {
    if (i1 > m) {
      b[k] = a[i2];
      i2 += 1;
    } else if (i2 > r) {
      b[k] = a[i1] + add;
      i1 += 1;
    } else {
      if (a[i1] + add < a[i2] - (m + 1 - i1)) {
        b[k] = a[i2] - (m + 1 - i1);
        i2 += 1;
        add += 1;
      } else {
        b[k] = a[i1] + add;
        i1 += 1;
      }
    }
  }
  for (long long i = 0; i < k; i++) {
    a[l + i] = b[i];
  }
}
void smain() {
  for (; cin >> n;) {
    for (long long i = 0; i < n; i++) cin >> a[i];
    reverse(a, a + n);
    merge_sort(0, n - 1);
    bool ok = true;
    for (long long i = 0; i < n - 1; i++)
      if (a[i] < a[i + 1] || a[i] < 0) ok = false;
    if (a[n - 1] < 0) ok = false;
    if (ok) {
      reverse(a, a + n);
      for (long long i = 0; i < n; i++) cout << a[i] << ' ';
      ;
      cout << "\n";
    } else {
      cout << ":(\n";
    }
  }
}
