import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
String str;
str = br.readLine();
Deque<Character> deque = new LinkedList<>();
for(int i = 0 ; i < str.length() ; i++){
if(str.charAt(i) == '('){
deque.offer(str.charAt(i));
}
else if(str.charAt(i) == ')'){
if(deque.isEmpty()){
System.out.println("NO");
System.exit(0);
}
deque.pollLast();
}
}
if(!deque.isEmpty()){
out.write("NO");
}
else{
out.write("YES");
}
out.flush();
out.close();
br.close();
}
}
Java中Deque的最基本使用