((()))
YES
([]]]{{{}}}
NO
#include <stack>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
using namespace std;
char s[11111];
int main()
{
while(scanf("%s", s) && strcmp(s, "#"))
{
stack <char> a;
int i;
for(i = 0; s[i]; i++)
{
if(!(s[i] == '(' || s[i] == '[' || s[i] == '{' || s[i] == ')' || s[i] == ']' || s[i] == '}')) continue;
if(a.empty() && (s[i] == ']' || s[i] == '}' || s[i] == ')'))
{
while(!a.empty()) a.pop();
printf("NO\n");
break;
}
if(a.empty())
{
a.push(s[i]);
continue;
}
if(a.top() == '(' && s[i] == ')' || a.top() == '{' && s[i] == '}' || a.top() == '[' && s[i] == ']')
{
a.pop();
continue;
}
if(a.top() == '(' || a.top() == '[' || a.top() == '{')
{
a.push(s[i]);
continue;
}
printf("NO\n");
while(!a.empty()) a.pop();
break;
}
if(!a.empty())
{
puts("NO");
continue;
}
if(!s[i]) puts("YES");
}
return 0;
}