#include <iostream>
#include <vector>
#include <string>
using namespace std;
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cmluZyB6YWdyYWRlOwoKdm9pZCBnZW5lcmlzaV96YWdyYWRlKGludCBuLCBpbnQgZHV6aW5hLCBpbnQgb3R2b3JlbmEsIGludCB6YXR2b3JlbmEsIHN0cmluZyBrb21iaW5hY2lqYSkKewogICAgaWYgKHphZ3JhZGVbZHV6aW5hXSAhPSAnLicgYW5kIHphZ3JhZGVbZHV6aW5hXSAhPSBrb21iaW5hY2lqYVtkdXppbmFdKQogICAgICAgIHJldHVybjsKICAgIGlmIChvdHZvcmVuYSA9PSBuIGFuZCB6YXR2b3JlbmEgPT0gbikKICAgIHsKICAgICAgICBjb3V0IDw8IGtvbWJpbmFjaWphIDw8ICJcbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKG90dm9yZW5hIDwgbikKICAgICAgICBnZW5lcmlzaV96YWdyYWRlKG4sIGR1emluYSArIDEsIG90dm9yZW5hICsgMSwgemF0dm9yZW5hLCBrb21iaW5hY2lqYSArICIoIik7CiAgICBpZiAoemF0dm9yZW5hIDwgb3R2b3JlbmEpCiAgICAgICAgZ2VuZXJpc2lfemFncmFkZShuLCBkdXppbmEgKyAxLCBvdHZvcmVuYSwgemF0dm9yZW5hICsgMSwga29tYmluYWNpamEgKyAiKSIpOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luID4+IHphZ3JhZGU7CiAgICBpbnQgbiA9IHphZ3JhZGUubGVuZ3RoKCk7IAogICAgZ2VuZXJpc2lfemFncmFkZShuIC8gMiwgMCwgMSwgMCwgIigiKTsKICAgIHJldHVybiAwOwp9