#include <bits/stdc++.h>
using namespace std;
int n;
char a[65][65];
string quard(int y, int x, int size){
if(size == 1) return string(1, a[y][x]);
string ret = "";
char target = a[y][x];
bool cn = false;
for(int i = y; i < y + size; i++){
for(int j = x; j < x + size; j++){
if(target != a[i][j]) true;
}
}
if(cn) {
ret += "(";
ret += quard(y, x, size / 2);
ret += quard(y, x + size / 2, size / 2);
ret += quard(y + size / 2, x, size / 2);
ret += quard(y + size / 2, x + size / 2, size / 2);
ret += ")";
return ret;
}
return string(1, a[y][x]);
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cin >> a[i][j];
}
}
cout << quard(0, 0, n) << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwpjaGFyIGFbNjVdWzY1XTsKc3RyaW5nIHF1YXJkKGludCB5LCBpbnQgeCwgaW50IHNpemUpewogICAgaWYoc2l6ZSA9PSAxKSByZXR1cm4gc3RyaW5nKDEsIGFbeV1beF0pOwogICAgc3RyaW5nIHJldCA9ICIiOwogICAgY2hhciB0YXJnZXQgPSBhW3ldW3hdOwogICAgYm9vbCBjbiA9IGZhbHNlOwogICAgZm9yKGludCBpID0geTsgaSA8IHkgKyBzaXplOyBpKyspewogICAgICAgIGZvcihpbnQgaiA9IHg7IGogPCB4ICsgc2l6ZTsgaisrKXsKICAgICAgICAgICAgaWYodGFyZ2V0ICE9IGFbaV1bal0pIHRydWU7CiAgICAgICAgfQogICAgfQogICAgaWYoY24pIHsKICAgICAgICByZXQgKz0gIigiOwogICAgICAgIHJldCArPSBxdWFyZCh5LCB4LCBzaXplIC8gMik7CiAgICAgICAgcmV0ICs9IHF1YXJkKHksIHggKyBzaXplIC8gMiwgc2l6ZSAvIDIpOwogICAgICAgIHJldCArPSBxdWFyZCh5ICsgc2l6ZSAvIDIsIHgsIHNpemUgLyAyKTsKICAgICAgICByZXQgKz0gcXVhcmQoeSArIHNpemUgLyAyLCB4ICsgc2l6ZSAvIDIsIHNpemUgLyAyKTsKICAgICAgICByZXQgKz0gIikiOwogICAgICAgIHJldHVybiByZXQ7CiAgICB9ICAgIAogICAgcmV0dXJuIHN0cmluZygxLCBhW3ldW3hdKTsKfQppbnQgbWFpbigpewogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgbjsgaisrKXsKICAgICAgICAgICAgY2luID4+IGFbaV1bal07CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBxdWFyZCgwLCAwLCBuKSA8PCAnXG4nOwp9