description: A bracket sequence is a string containing only characters "(" and ")". A regular bracket sequence is a bracket sequence that can be transformed into a correct arithmetic expression by inserting characters "1" and "+" between the original characters of the sequence. For example, bracket sequences "()()" and "(())" are regular (the resulting expressions are: "(1)+(1)" and "((1+1)+1)"), and ")(", "(" and ")" are not.
  
  You are given an integer n. Your goal is to construct and print exactly n different regular bracket sequences of length 2n.
  
  Input
  
  The first line contains one integer t (1 ≤ t ≤ 50) — the number of test cases.
  
  Each test case consists of one line containing one integer n (1 ≤ n ≤ 50).
  
  Output
  
  For each test case, print n lines, each containing a regular bracket sequence of length exactly 2n. All bracket sequences you output for a testcase should be different (though they may repeat in different test cases). If there are multiple answers, print any of them. It can be shown that it's always possible.
  
  Example
  
  Input
  
  
  3
  3
  1
  3
  
  
  Output
  
  
  ()()()
  ((()))
  (()())
  ()
  ((()))
  (())()
  ()(())
solution: import java.io.*;
  import java.math.*;
  import java.util.*;
  import java.util.regex.*;
  
  public class a{
    static final int mod = 1000000007;
  
    static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  
    static void parr(int []arr) throws Exception{
      for(int i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(long []arr) throws Exception{
      for(long i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(double []arr) throws Exception{
      for(double i : arr) System.out.print(i+" ");
      System.out.println();
    }
    static void parr(float []arr) throws Exception{
      for(float i : arr) System.out.print(i+" ");
      System.out.println();
    }
  
    static int inpi() throws Exception{
      return (int)(Integer.parseInt(br.readLine()));
    }
    static long inpl() throws Exception{
      return (long)Long.parseLong(br.readLine());
    }
    static double inpd() throws Exception{
      return (double)Double.parseDouble(br.readLine());
    }
    static float inpf() throws Exception{
      return (float)Float.parseFloat(br.readLine());
    }
  
    static int[] inpai() throws Exception{
      String ar[] = br.readLine().split(" ");
      int n = ar.length;
      int arr[] = new int[n];
      int k=0;
      for(String i : ar) arr[k++] = (int)(Integer.parseInt(i));
      return arr;
    }
  
    static double[] inpad() throws Exception{
      String ar[] = br.readLine().split(" ");
      int n = ar.length;
      double arr[] = new double[n];
      int k=0;
      for(String i : ar) arr[k++] = (double)(Double.parseDouble(i));
      return arr;
    }
  
    static float[] inpaf() throws Exception{
      String ar[] = br.readLine().split(" ");
            int n = ar.length;
      float arr[] = new float[n];
      int k=0;
      for(String i : ar) arr[k++] = (float)(Float.parseFloat(i));
      return arr;
    }
  
    static long[] inpal() throws Exception{
      String ar[] = br.readLine().split(" ");
            int n = ar.length;
      long arr[] = new long[n];
      int k=0;
      for(String i : ar) arr[k++] = (long)(Long.parseLong(i));
      return arr;
    }
  ///////
  
  ///////////
  static void factors(int num){
  
    int sqrt = (int)Math.sqrt(num);
    lis.add(num);
    for(int i=2;i<=sqrt;i++){
      if(num%i==0){
        lis.add(i);
        if(num/i!=i) lis.add(num/i);
      }
    }
  }
  /////////////
  static int gcd (int a,int b){
  if(b==0) return a;
  return gcd(b,a%b);
  }
  //////
  
  static class sort implements Comparator<node>{
  public int compare(node a,node b){
      return (int)(b.hapi-a.hapi);
    }
  }
  
  static class node{
      int s,e;
      long hapi;
      node(long hapi,int s,int e){
        this.s = s;
        this.e = e;
        this.hapi = hapi;
      }
  }
  //////
  
  
  static void solve(int testcase) throws Exception{
    int n = inpi();
    String str = "";
  
    for(int i =0;i<n;i++)  str += "(";
    for(int i=0;i<n;i++) str += ")";
  
    System.out.println(str);
    int in = n;
    if(n==1) return;
  
    for(int i=0;i<n-1;i++){
      str = str.substring(0,in-1)+str.charAt(in)+str.charAt(in-1)+str.substring(in+1);
      in--;
      System.out.println(str);
    }
  }
  //////
  
  static boolean vis[];
  static Map<Character,Integer> map;
  static ArrayList<Integer> arl[];
  static Set<Integer> set;
  static int n,m,k,x,y;
  static ArrayList<Integer> lis;
  static String str;
  static int arr[];
  
  /////
    public static void main(String[] args)throws Exception{
      int t=1;
    t = inpi();
  
      for(int z=1;z<=t;z++){
  
          solve(z);
      }
  //////
    }
  }
  