#include <bits/stdc++.h>
using namespace std;
const int maxn = 200010;
int N;
struct node {
  int id;
  int x, y;
  bool operator<(const node &a) const { return x < a.x; }
} a[maxn];
int main() {
  while (scanf("%d", &N) != EOF) {
    for (int i = 1; i <= N; i++) {
      scanf("%d", &a[i].y);
      a[i].x = a[i].y - (N - i + 1);
      a[i].id = i;
    }
    sort(a + 1, a + 1 + N);
    bool flag = true;
    for (int i = 1; i < N; i++) {
      if (a[i].x == a[i + 1].x) {
        flag = false;
        break;
      }
    }
    if (!flag)
      printf(":(\n");
    else {
      for (int i = 1; i <= N; i++) printf("%d ", a[i].y - (i - a[i].id));
      printf("\n");
    }
  }
  return 0;
}
