#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
****************************************************************/