A. Correct Brackets
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given a $$$^\dagger $$$ bracket sequence $$$S$$$.

You can do the following operation any number of times(possibly zero):

  • Choose an index $$$i$$$ $$$( 1 \leq i \leq |S| )$$$ such that $$$S_i$$$ = ')', then delete $$$S_i$$$ and insert it at any index $$$j$$$ $$$( 1 \le j \le i )$$$.
Your task is to determine whether you can make the string $$$^\ddagger $$$ correct bracket sequence.

$$$^\dagger $$$ A bracket sequence is any non-empty sequence of opening and closing parentheses.

$$$^\ddagger $$$ A bracket sequence is called a correct bracket sequence if it's possible to obtain a correct arithmetic expression by inserting characters '+' and '1' into this sequence. For example, the sequences '(())()', '()' and '(()(()))' are correct, while the bracket sequences ')(', '(()' and '(()))(' are not correct.

Input

The only line of the input contains a string $$$S$$$ $$$( 1 \le |S| \le 2*10^{5} )$$$ — consisting only of characters '(' and ')'.

Output

Print 'Yes' if you can make the string correct bracket sequence, and 'No' otherwise.

Example
Input
((()))
Output
Yes
Note

In the sample, there are many ways to achieve a correct bracket sequence, one of them is to do no operations, another one is by two operations you can delete the fourth and fifth brackets and place them after the first and second brackets in order then the sequence becomes '()()()'.