#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main()
{
string s;
getline(cin,s);
stack<char> st;
if(s.empty())
{
cout<<"true"<<endl;
return 0;
}
for(int i=0;i<s.size();i++)
{
if(s[i]=='['||s[i]=='(')
{
st.push(s[i]);
}
else if(s[i]==']'||s[i]==')')
{
if(st.empty())
{
cout<<"false"<<endl;
return 0;
}
if((st.top()=='[')&&(s[i]==']'))
{
st.pop();
}
else if((st.top()=='(')&&(s[i]==')'))
{
st.pop();
}
else {
cout<<"false"<<endl;
return 0;
}
}
}
if(st.empty())
{
cout<<"true"<<endl;
}
else {
cout<<"false"<<endl;
}
return 0;
}