#include<iostream>
#include<stack>
using namespace std;
bool ismatch(string s)
{
stack<char> stac;
int flag=0;
for(int i=0;i<s.size();i++)
{
if(s[i]=='[' || s[i]=='{' || s[i]=='(')
{stac.push(s[i]);flag=1;continue;}
if(s[i]==']')
if(!stac.empty() && '['==stac.top()) {stac.pop();continue;}
else return false;
if(s[i]=='}')
if(!stac.empty() && '{'==stac.top()) {stac.pop();continue;}
else return false;
if(s[i]==')')
if(!stac.empty() && '('==stac.top()) {stac.pop();continue;}
else return false;
}
if(flag && stac.empty()) return true;
else return false;
}
int main()
{
string s;
getline(cin,s); //空格也可以读取
if(ismatch(s)) cout<<"yes\n";
else cout<<"no\n";
return 0;
}