#include <bits/stdc++.h>
using namespace std;
string s;
stack<char> st;
int main(){
cin>>s;//输入s
for(int i=0;i<s.size();i++){
if(s[i]=='('||s[i]=='{'||s[i]=='[') st.push(s[i]);//如果为前括号,进栈
else{
if(s[i]==')'){
if(!st.empty()&&st.top()=='(') st.pop();//如果能匹配,匹配到的括号出栈
else{//否则输出no,退出
cout<<"no";
return 0;
}
}
if(s[i]==']'){
if(!st.empty()&&st.top()=='[') st.pop();//如果能匹配,匹配到的括号出栈
else{//否则输出no,退出
cout<<"no";
return 0;
}
}
if(s[i]=='}'){
if(!st.empty()&&st.top()=='{') st.pop();//如果能匹配,匹配到的括号出栈
else{//否则输出no,退出
cout<<"no";
return 0;
}
}
}
}
if(st.size()==0) cout<<"yes";
else cout<<"no";
return 0;
}
/**************************************************************
Problem: 1486
User: fuhongyi
Language: C++
Result: Accepted
Time:31 ms
Memory:2080 kb
****************************************************************/