//Codeforcesで128bit整数を使いたいとき
//→__int128_tを使う&GNU C++17 (64)で提出する

//インクルードなど
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

//イテレーション
#define REP(i,n) for(ll i=0;i<ll(n);i++)
#define REPD(i,n) for(ll i=n-1;i>=0;i--)
#define FOR(i,a,b) for(ll i=a;i<=ll(b);i++)
#define FORD(i,a,b) for(ll i=a;i>=ll(b);i--)
#define FORA(i,I) for(const auto& i:I)
//x:コンテナ
#define ALL(x) x.begin(),x.end() 
#define SIZE(x) ll(x.size()) 
//定数
#define INF32 2147483647 //2.147483647×10^{9}:32bit整数のinf
#define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf
#define MOD 1000000007 //問題による
//略記
#define F first
#define S second
//出力(空白区切りで昇順に)
#define coutALL(x) for(auto i=x.begin();i!=--x.end();i++)cout<<*i<<" ";cout<<*--x.end()<<endl;

//aをbで割る時の繰上げ,繰り下げ
ll myceil(ll a,ll b){return (a+(b-1))/b;}
ll myfloor(ll a,ll b){return a/b;}

#define PI 3.141592653589793

signed main(){
    double N,x_min,x_max,y_min,y_max;

    cin >> N >> x_min >> y_min >> x_max >> y_max;
	
	double x_center = (x_min+x_max)/2;
	double y_center = (y_min+y_max)/2;

	double x_1,y_1;

	double coses = cos(2/N*PI);
	double sines = sin(2/N*PI);	

	double x_0 = x_min - x_center;
	double y_0 = y_min - y_center;

	x_1 = coses*x_0 - sines*y_0 + x_center;
	y_1 = coses*y_0 + sines*x_0 + y_center;

	cout << fixed << setprecision(10) << x_1 << " " << y_1 << endl;
}

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mx=1e6+5;
//考虑括号序列的匹配问题 
inline int read() {
	int x=0,f=1; char c=getchar();
	while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
	while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-'0';c=getchar();}
	return x*f;
}
struct node{
	int x,id;
	bool operator <(const node &a) {
		return x<a.x;
	}
}a[mx];
int n,b[mx],s[mx],cnt;
ll res;
char c[mx];
int main() {
//	freopen("data.in","r",stdin);
//	freopen("ans.out","w",stdout);
	n=read(); n*=2;
	for(int i=1;i<=n;i++) a[i].x=read(),a[i].id=i;
	sort(a+1,a+1+n);
	for(int i=n/2+1;i<=n;i++) b[a[i].id]=1;
	for(int i=1;i<=n;i++) {
		if(b[i]) {
			if(cnt&&!b[s[cnt]]) c[s[cnt]]='(',c[i]=')',cnt--;
			else s[++cnt]=i;
		}
		else {
			if(cnt&&b[s[cnt]]) c[s[cnt]]='(',c[i]=')',cnt--;
			else s[++cnt]=i;
		}
	}
//	for(int i=1;i<=n/2;i++) {
//		int x=a[i].id,y=a[n-i+1].id;
//		res+=a[n-i+1].x-a[i].x;
//		printf("%d %d\n",a[n-i+1].x,a[i].x);
//		if(x<y) c[x]='(',c[y]=')';
//		else c[x]=')',c[y]='(';
//	}
//	printf("%d",res);
	for(int i=1;i<=n;i++) printf("%c",c[i]);
} 