#include <bits/stdc++.h>
void quicksort(int A[], int p, int q) {
  int k, i, x;
  if (p >= q) {
    return;
  }
  srand(time(0));
  k = rand() % (q - p + 1) + p;
  x = A[k];
  A[k] = A[q];
  A[q] = x;
  k = p;
  for (i = p; i < q; i++) {
    if (A[i] > A[q] || (A[i] == A[q] && (i & 1))) {
      x = A[i];
      A[i] = A[k];
      A[k++] = x;
    }
  }
  x = A[q];
  A[q] = A[k];
  A[k] = x;
  quicksort(A, p, k - 1);
  quicksort(A, k + 1, q);
  return;
}
int main() {
  int n, a[200000], fail, i;
  scanf("%d", &n);
  for (i = n - 1; i >= 0; i--) {
    scanf("%d", &a[i]);
    a[i] -= i;
  }
  quicksort(a, 0, n - 1);
  fail = 0;
  for (i = 1; i < n; i++) {
    a[i] += i;
    if (a[i] > a[i - 1]) {
      fail = 1;
      break;
    }
  }
  if (fail) {
    printf(":(");
  } else {
    for (i = n - 1; i > 0; i--) {
      printf("%d ", a[i]);
    }
    printf("%d\n", a[0]);
  }
  return 0;
}
