#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<ll,ll> P;
typedef vector<ll> VI;
typedef vector<VI> VVI;
#define REP(i,n) for(ll i=0;i<(n);i++)
#define ALL(v) v.begin(),v.end()
constexpr ll MOD=998244353;
constexpr ll INF=2e18;

int main(){
    int n; cin >> n; n*=2;
    VI a(n); REP(i,n) cin >> a[i];
    vector<P> p(0);
    REP(i,n){
        p.push_back({a[i],i});
    }
    sort(ALL(p));
    VI f(n,0);
    int x=0;
    REP(i,n){
        if(x<n/2){
            f[p[i].second]=1;
            x++;
        }
    }
    vector<char> ans(n);
    stack<int> st;
    REP(i,n){
        if(st.size()==0){
            st.push(i);
        }
        else{
            if(f[st.top()]==f[i]){
                st.push(i);
            }
            else{
                ans[st.top()]='(';
                ans[i]=')';
                st.pop();
            }
        }
    }
    for(auto c:ans){
        cout << c;
    }
    cout << endl;
}
#include <iostream>

long long dp[201][12];

long long nCr(long long n, long long r) {
	if (r == n)
		return dp[n][r] = 1;
	if (r == 1)
		return dp[n][r] = n;
	if (r == 0)
		return dp[n][r] = 1;
	if (dp[n][r] == 0)
		return dp[n][r] = nCr(n-1, r) + nCr(n-1, r-1);
	else
		return dp[n][r];
}

int main() {
	int l;
	for (int i = 0; i < 201; i++) {
		for (int j = 0; j < 13; j++)
			dp[i][j] = 0;
	}
	std::cin >> l;
	std::cout << nCr(l-1, 11);
	return 0;
}
