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

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

};
bool tacno(string a,ll n,ll k){
    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)
                a.erase(i,1);
            else return false;
        }
}
return true;
}
void permutacije(ll n,ll t,ll k){
    if(!promena){
    if(n==0){
        tp++;
        if(tp==t){
            promena=true;
           if(tacno(rez,rez.size(),k))
            cout << rez << '\n';
           else
            cout << "Ne postoji"<< '\n';
        }

    }
    else
     {
        rez+='(';
        permutacije(n-1,t,k);
        rez.erase(n-1,1);
        rez+=')';
        permutacije(n-1,t,k);
     }
    }

}

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++){
            ll broj= pow (p[i].n,p[i].n);
        if(p[i].t>broj && p[i].n!=1 || (p[i].n==1 && p[i].t>2)) cout << "Ne postoji" << '\n';
        else{
        rez="";
        promena=false;
        tp=0;
        permutacije(p[i].n,p[i].t,p[i].k);
      }
    }
   /* string a="((()()))";
    if(tacno(a,8,0))cout << "nije ovo " << endl;*/
    return 0;


}