#include #include using namespace std; string be; char getZaro(char a){ if(a == '(') return a+1; if(a == '{' || a == '[') return a+2; return 'e'; } bool isValid(int bal, int jobb){ if(bal > jobb) return true; bool ok = true; for(int i = bal; i <= jobb; ++i){ char kezdo = be[i]; int vegpos = i + 1; if(kezdo == '|'){ int szaml = 0; while(vegpos <= jobb){ ok = false; if(be[vegpos] == '|'){ szaml++; if(ok == 0)ok = isValid(i+1, vegpos-1); } ++vegpos; } if(szaml % 2 == 0) return false; }else{ char veg = getZaro(kezdo); int nyitok = 1; while(vegpos <= jobb && nyitok > 0){ if(be[vegpos] == kezdo) nyitok++; if(be[vegpos] == veg) nyitok--; if(nyitok > 0) ++vegpos; } if(vegpos <= jobb){ if(ok) ok = isValid(i+1, vegpos-1); } else return false; } if(!ok) return false; i = vegpos; } return true; } int main(){ int n; cin >> n; for(int i = 0; i < n; ++i){ cin >> be; if(isValid(0, be.length()-1)) cout << "YES" << endl; else cout << "NU" << endl; } return 0; }