#include <bits/stdc++.h>

using namespace std;


int N, P[100000];

int main() {
  cin >> N;
  for(int i = 0; i < N; i++) {
    cin >> P[i];
    --P[i];
  }
  stack< int > st;

  string tap;
  for(int i = N - 1; i >= 0; i--) {
    while(st.size() && st.top() > P[i]) {
      tap += "(";
      st.pop();
    }
    tap += ")";
    st.push(P[i]);
  }
  while(st.size()) {
    tap += "(";
    st.pop();
  }
  reverse(tap.begin(), tap.end());


  int ptr1 = 0, ptr2 = 0;
  for(int i = 0; i < tap.size(); i++) {
    if(tap[i] == '(') {
      st.emplace(ptr1++);
    } else {
      if(st.empty() || P[ptr2++] != st.top()) {
        cout << ":(" << endl; // うくやめてえ
        return 0;
      }
      st.pop();
    }
  }

  cout << tap << endl;

}

