#define maxsize 1024
#define NULL 0
#include<bits/stdc++.h>
using namespace std;
int top = 0;
void PUSH( char STACK[ ], char item )
{
if ( top==maxsize )
{
printf( "Stack is full !" );
}
else
{
top = top +1;
STACK[top] = item;
}
}
char POP( char STACK[] )
{
if(top == -1)
{
cout<<"NO";
return (false) ;
}
else
{
char x;
x = STACK[top];
top = top -1;
return (x);
}
}
int main()
{
char stack[1024],a[1024];
cin>>a;
for(int i=0;i<strlen(a);i++)
{
stack[i]=a[i];
if(stack[i]=='(')
{
PUSH(a,stack[i]);
}
if(stack[i]==')')
{
POP(a);
}
if(top == -1)
{
cout<<"NO";
return 0 ;
}
}
if(top>0)
{
cout<<"NO";
return 0;
}
else if(top==0)
{
cout<<"YES";
}
return 0;
}