#include <bits/stdc++.h>
using namespace std;
bool is_balanced_and_not_prefix_balanced(string x) {
  stack<char> s;
  for (int i = 0; i < x.size(); i++) {
    if (x[i] == '(') {
      s.push(x[i]);
    } else if (x[i] == ')' && !s.empty()) {
      s.pop();
      if (i != x.size() - 1 && s.empty()) return false;
    } else {
      return false;
    }
  }
  if (s.empty()) return true;
  return false;
}
int main() {
  int n;
  while (cin >> n) {
    string str;
    cin >> str;
    int count = n / 2;
    for (int i = 0; i < str.size(); i++) {
      if (str[i] == '(') {
        count--;
      }
    }
    for (int i = 0; i < str.size(); i++) {
      if (str[i] == '?') {
        if (count > 0) {
          str[i] = '(';
          count--;
        } else {
          str[i] = ')';
        }
      }
    }
    if (is_balanced_and_not_prefix_balanced(str)) {
      cout << str << endl;
    } else {
      cout << ":(" << endl;
    }
  }
  return 0;
}
