#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000;
int l[maxn], r[maxn];
int num[maxn];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d%d", &l[i], &r[i]);
  stack<int> st;
  string s;
  for (int i = 1; i <= n; i++) {
    s += '(';
    num[i] = s.size();
    st.push(i);
    while ((!st.empty()) && (s.size() + 1 - num[st.top()] >= l[st.top()])) {
      if ((s.size() + 1 - num[st.top()] <= r[st.top()])) {
        st.pop();
        s += ')';
      } else {
        printf("IMPOSSIBLE\n");
        return 0;
      }
    }
  }
  if (s.size() == 2 * n)
    cout << s << endl;
  else
    printf("IMPOSSIBLE\n");
  return 0;
}
