#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> kombinacije;
string zagrade;
void generisi_zagrade(int n, int duzina, int otvorena, int zatvorena, string kombinacija)
{
if (zagrade[duzina] != '.' and zagrade[duzina] != kombinacija[duzina])
return;
if (otvorena == n and zatvorena == n)
{
cout << kombinacija << "\n";
return;
}
if (otvorena < n)
generisi_zagrade(n, duzina + 1, otvorena + 1, zatvorena, kombinacija + "(");
if (zatvorena < otvorena)
generisi_zagrade(n, duzina + 1, otvorena, zatvorena + 1, kombinacija + ")");
}
int main()
{
ios_base::sync_with_stdio(false);
cin >> zagrade;
int n = zagrade.length();
generisi_zagrade(n / 2, 0, 1, 0, "(");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxzdHJpbmc+IGtvbWJpbmFjaWplOwpzdHJpbmcgemFncmFkZTsKCnZvaWQgZ2VuZXJpc2lfemFncmFkZShpbnQgbiwgaW50IGR1emluYSwgaW50IG90dm9yZW5hLCBpbnQgemF0dm9yZW5hLCBzdHJpbmcga29tYmluYWNpamEpCnsKICAgIGlmICh6YWdyYWRlW2R1emluYV0gIT0gJy4nIGFuZCB6YWdyYWRlW2R1emluYV0gIT0ga29tYmluYWNpamFbZHV6aW5hXSkKICAgICAgICByZXR1cm47CiAgICBpZiAob3R2b3JlbmEgPT0gbiBhbmQgemF0dm9yZW5hID09IG4pCiAgICB7CiAgICAgICAgY291dCA8PCBrb21iaW5hY2lqYSA8PCAiXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChvdHZvcmVuYSA8IG4pCiAgICAgICAgZ2VuZXJpc2lfemFncmFkZShuLCBkdXppbmEgKyAxLCBvdHZvcmVuYSArIDEsIHphdHZvcmVuYSwga29tYmluYWNpamEgKyAiKCIpOwogICAgaWYgKHphdHZvcmVuYSA8IG90dm9yZW5hKQogICAgICAgIGdlbmVyaXNpX3phZ3JhZGUobiwgZHV6aW5hICsgMSwgb3R2b3JlbmEsIHphdHZvcmVuYSArIDEsIGtvbWJpbmFjaWphICsgIikiKTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbiA+PiB6YWdyYWRlOwogICAgaW50IG4gPSB6YWdyYWRlLmxlbmd0aCgpOyAKICAgIGdlbmVyaXNpX3phZ3JhZGUobiAvIDIsIDAsIDEsIDAsICIoIik7CiAgICByZXR1cm4gMDsKfQ==