//1.字符串
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin >> s;
int n = s.length();
int i = n-1;
while(s.substr(0,i) != s.substr(n-i,i))
i--;
cout << s.substr(0,n-i) << s << endl;
return 0;
}
//2.括号题(AC 90% 暴力深搜 循环超时。。有没有优化思路)
#include<bits/stdc++.h>
using namespace std;
int res;
bool isvaild(string s){
int n = s.length();
if(n == 0)
return true;
if(n % 2 == 1)
return false;
stack<char> t;
for(int i = 0;i < n;i++){
if(s[i] == '(')
t.push(s[i]);
else if(s[i] == ')'){
if(t.empty())
return false;
else
t.pop();
}
}
return true;
}
void dfs(string s){
if(s.empty())
res++;
else{
string temp(s.begin()+1,s.end());
string st;
for(int i = 0;i < temp.length();i++){
if(temp[i] == ')'){
st = temp;
st.erase(st.begin()+i);
if(isvaild(st)){
dfs(st);
}
}
}
}
}
int main(){
string s;
cin >> s;
res = 0;
string t;
dfs(s);
cout << res << endl;
return 0;
}