#include <iostream>
#include <stack>
#include <cstring>
using namespace std;
stack <int> S;
char C[4005];
int N,i,M,j;
bool ok;
int main()
{
    cin>>N;
    cin.getline(C,4000);
    for(i=1;i<=N;i++)
    {
        ok=1;
        cin.getline(C+1,4000);
        M=strlen(C+1);
        for(j=1;j<=M&&ok;j++)
        {
            switch (C[j])
            {
                case '(':S.push(1);break;
                case '[':S.push(2);break;
                case '{':S.push(3);break;
                case '|':{
                    if(S.empty()||S.top()!=4)
                        S.push(4);
                    else
                        S.pop();
                    break;
                }
                case ')':if(S.empty()||S.top()!=1) ok=0;else S.pop(); break;
                case ']':if(S.empty()||S.top()!=2) ok=0;else S.pop();break;
                case '}':if(S.empty()||S.top()!=3) ok=0;else S.pop();break;
            }
        }
        if(ok==1&&S.empty())
            cout<<"YES\n";
        else
            cout<<"NO\n";
    }
    return 0;
}