Example

Input

1


Output

)(
//??:2s   空?:512MB
//?意:要求求出最短的字典序最小的括号序列
//要求移?n次可以使他合法
//算法:通?枚???,...)))(((....,??是n*(n+1)/2的最?解
//所以?个之?就可以将最左?的(向左移?相?的位置
//可以??理出所有的n*(n+1)/2 
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll f[50005];
int chuli(int n){
	for(int i=1;i<=50000;i++){
		f[i]=i*(i+1)/2;
		if(f[i]>=n)return i;
	}	
}
void print(int x){
	for(int i=1;i<=x;i++)
		printf(")");
	for(int i=1;i<=x;i++)
		printf("(");
	printf("\n");
}
int main(){
//	freopen("a.in","r",stdin);
	int n;
	scanf("%d",&n);
	int ans=chuli(n);
	if(f[ans]==n)print(ans);
	else{
		int delt=f[ans]-n;
		for(int i=1;i<=ans-f[ans]+n;i++)
			printf(")");
		printf("(");
		for(int i=ans-f[ans]+n+2;i<=ans+1;i++)
			printf(")");
		for(int i=1;i<=ans-1;i++)
			printf("(");
		printf("\n");
	}
	return 0;
} 