#include<bits/stdc++.h>

using namespace std;

#define FOR(i, x, y) for(int i = (int)(x); i < (int)(y); ++i)
#define MP make_pair
#define fst first
#define snd second
typedef pair<int, int> pii;

const int maxn = 4e5 + 5;

int n, top = 0;
int a[maxn], ord[maxn], rev[maxn], stk[maxn];
char s[maxn];

inline bool cmp(const int &i, const int &j){ return a[i] < a[j]; }

int main(){
	scanf("%d", &n);
	FOR(i, 0, n << 1){
		scanf("%d", a + i);
		ord[i] = i;
	}
	sort(ord, ord + (n << 1), cmp);
	FOR(i, 0, n << 1)
		rev[ord[i]] = i;	
	FOR(i, 0, n << 1){
		if(top && (rev[stk[top]] < n) != (rev[i] < n)){
			s[stk[top]] = '(', s[i] = ')';
			--top;
		}
		else
			stk[++top] = i;
	}
	
	puts(s);
	return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a,q,ans,cnt;
string s;
map<ll,ll> mp;
vector<ll> v,v1;
int main(void){
    cin>>n;
    for(int i=0;i<2*n;i++){
        cin>>a;
        v.push_back(a);
        v1.push_back(a);
    }
    sort(v1.begin(),v1.end());
    for(int i=0;i<n;i++){
        mp[v1[i]]++;
    }
    for(int i=0;i<2*n;i++){
        if(mp[v[i]]){
            s+='A';
            mp[v[i]]--;
        }
        else s+='B';
    }
    //cout<<s<<endl;
    for(int i=0;i<2*n;i++){
        if(s[i]=='A'){
            if(cnt<0){
                cnt++;
                cout<<')';
            }
            else{
                cnt++;
                cout<<'(';
            }
        }
        else{
            if(cnt>0){
                cnt--;
                cout<<')';
            }
            else{
                cnt--;
                cout<<'(';
            }
        }
    }
    cout<<endl;
}
