#include <bits/stdc++.h>
#include <math.h>

using namespace std;
typedef long long ll;
bool promena=false;
ll tp=0;
struct zagrade{
   ll n;
   ll k;
   ll t;

};
bool tacno(string a,ll n,ll k,ll pom){
    bool b[n]={false};
    for(ll i=0;i<n;i++)
    {
         if(a[i]==('(')&&!b[i]){
            for(ll j=n-1;j>i;j--){
                if(a[j]==(')') && !b[j]){
                    b[j]=true;
                    b[i]=true;
                    j=0;}}}
         else if(a[i]=')'&&!b[i]){
            for(ll j=n-1;j>i;j--){
                if(a[j]==('(') && !b[j]){
                    b[j]=true;
                    b[i]=true;
                    j=0;
            }
        }}
        if(!b[i]){
            if(k>0){
                if(i>0)
                a.erase(i-1,1);
                b[i]=true;
                k--;
            }
            else {
                k=pom;
                return false;}
          }
    }
       k=pom;
       return true;

}
void permutacije(ll n,ll k,ll t,string rez){
    if(!promena){
    if(n==0){
       if(tacno(rez,rez.size(),k,k)){
            tp++;
            if(tp==t){
            cout << rez << '\n';
            promena=true;
          }
        }
    }
    else
    {
        permutacije(n-1,k,t,rez+'(');
        permutacije(n-1,k,t,rez+')');
    }
  }
}

int main()
{
    ll q;

    cin >> q; //broj upita
   zagrade p[q];
    for(ll i=0;i<q;i++) cin >> p[i].n >> p[i].k >> p[i].t; //upiti
    for(ll i=0;i<q;i++){
        promena=false;
        tp=0;
        permutacije(p[i].n,p[i].k,p[i].t,"");
         if(!promena)  cout << "Ne postoji" << '\n';
    }
    /*
    if(!promena)  cout << "Ne postoji" << '\n';
    string a="(";
    if(tacno(a,1,1,1))cout << "nije ovo " << endl;
    permutacije(1,1,1,"");
    */
    return 0;
}