#include using namespace std; const int MAXN = 500005; vector St; char Rev[256]; string closed = "}])"; string solve(char str[]) { St.clear(); for(int i = 0; str[i]; ++i) { if(str[i] == '(' || str[i] == '[' || str[i] == '{') { St.push_back(str[i]); } else { if(find(closed.begin(), closed.end(), str[i]) != closed.end()) { if(St.empty() || St.back() != Rev[str[i]]) { return "NO"; } else { St.pop_back(); } } else { if(!St.empty() && St.back() == '|') St.pop_back(); else St.push_back('|'); } } } if(St.empty()) return "YES"; return "NO"; } char str[MAXN]; int main() { Rev[')'] = '('; Rev[']'] = '['; Rev['}'] = '{'; int t; cin >> t; while(t--) { cin >> str; cout << solve(str) << '\n'; } return 0; }