#include <bits/stdc++.h>
using namespace std;
int a[200050];
set<pair<int, int> > A;
void solution() {
  int n;
  cin >> n;
  for (int i = (1); i <= (n); i++) {
    scanf("%d", &a[i]);
    A.insert(make_pair(-(a[i] + i - n), i));
  }
  int ps = n;
  while (!A.empty()) {
    pair<int, int> pr = *A.begin();
    A.erase(A.begin());
    int val = pr.first;
    int ind = pr.second;
    int dif = ps - ind;
    A.erase(make_pair(-(a[ps] + ps - n), ps));
    if (ps != ind) {
      A.insert(make_pair(-(a[ps] + dif + ind - n), ind));
      int x = a[ps] + dif;
      a[ps] = a[ind] - dif;
      a[ind] = x;
    }
    ps--;
  }
  a[n + 1] = a[n];
  for (int i = (n); i >= (1); i--) {
    if (a[i] < 0 || a[i] > a[i + 1]) {
      cout << ":(" << '\n';
      return;
    }
  }
  for (int i = (1); i <= (n - 1); i++) printf("%d ", a[i]);
  cout << a[n] << '\n';
}
int main() { solution(); }
