#include <bits/stdc++.h>
using namespace std;
const int maxn = 600 + 10;
int n, L[maxn], R[maxn];
char s[maxn * 2];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) scanf("%d%d", &L[i], &R[i]);
  int p = 0;
  stack<pair<int, int> > st;
  for (int i = 0; i < n; ++i) {
    st.push(make_pair(L[i] + p, R[i] + p));
    s[p++] = '(';
    while (!st.empty() && st.top().first <= p && p <= st.top().second) {
      s[p++] = ')';
      st.pop();
    }
    if (!st.empty() && p > st.top().second) {
      puts("IMPOSSIBLE");
      return 0;
    }
  }
  if (!st.empty()) {
    puts("IMPOSSIBLE");
    return 0;
  }
  puts(s);
  return 0;
}
