#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define fi first
#define se second
#define pb push_back
#define ii pair<int , int>
#define pq priority_queue
#define iii pair<int , pair<int , int>>
#define fo(i,l,r) for(int i=l;i<=r;i++)
#define fod(i,r,l) for(int i=r;i>=l;i--)
#define fill(f,x) memset(f,x,sizeof(f))
#define NAME "file"

const int N = 2e5 + 5, mod = 1e9 + 7;
int n , k , a[21] , b[21] , p[21] , cnt = 0;

void sol(int i)
{
    if (i > n)
    {
        stack <int> st;
        bool check = true;
        int dem = 0;
        for (int j = 1 ; j <= n ; j++)
        {
            if (p[j] == 0)
            {
                st.push(0);
                dem++; // số ngoặc mở liên tiếp
                if (dem > k) 
                {
                    check = false;
                    break;
                }
            }
            else
            {
                dem = 0;
                if (st.empty())
                {
                    check = false;
                    break;
                }
                st.pop();
            }
        }
        if (st.empty() && check)
        {
            for (int j = 1 ; j <= n ; j++)
            {
                if (p[j] == 0) cout << '(';
                else cout << ')';
            }
            cout << '\n';
        }
    }
    else
    {
        for (int j = 0 ; j <= 1 ; j++)
        {
            p[i] = j;
            sol(i + 1);
        }
    }
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);  cout.tie(0);
    //freopen(NAME".INP" , "r" , stdin);
    //freopen(NAME".OUT" , "w" , stdout);
 
    cin >> n >> k;
    sol(1);
}
// haronnee_ 