#include <bits/stdc++.h>
using namespace std;
int n, l[605], r[605];
string str, tmp;
stack<string> S;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> l[i] >> r[i];
  for (int i = n - 1; i >= 0; i--) {
    if (l[i] == 1) {
      S.push("()");
      continue;
    } else {
      int lenth = 1;
      tmp = "";
      while (!S.empty() && lenth < l[i]) {
        tmp = tmp + S.top();
        lenth += S.top().length();
        S.pop();
      }
      tmp = "(" + tmp + ")";
      S.push(tmp);
      if (lenth > r[i] || lenth < l[i]) {
        cout << "IMPOSSIBLE" << endl;
        return 0;
      }
    }
  }
  while (!S.empty()) {
    cout << S.top();
    S.pop();
  }
  return 0;
}
