#include <iostream>
#include <stack>
#include <string>

using namespace std;

int main()
{
    int n;
    cin >> n;
    char l;
    cin.get(l); //считывание конца строки после числа
    for(int z=0;z<n;z++){
        bool q=1; //переменная "фиксирующая" ошибку
        char hab;
        string str;
        getline(cin,str); //используем, чтобы читать до конца строки
        int j=str.size(); //размер строки ( кол-во обрабатываемых символов)
        stack<char> res; //стэк скобок
        for(int i=0;i<j;i++){
            if((str[i]=='(')||(str[i]=='[')) //если открывающая скобка - то кладем в стэк
                res.push(str[i]);
            else{ //если закрывающая скобка
                    if(!res.empty()){ //если стэк не пуст
                        hab=res.top(); //вытаскиваем последний элемент
                        if(str[i]==')'){ //сверяем на типы скобок
                            if(hab=='('){
                                res.pop();
                               }
                            else{
                                q=0;
                                cout << "No" << endl;
                                break;

                            }
                        }
                        else{
                            if(hab=='['){ //второй тип скобок
                                res.pop();
                               }
                            else{
                                q=0;
                                cout << "No" << endl;
                                break;
                            }
                        }
                    }
                    else{ //если стэк пуст  - то ошибочка вышла!
                        cout << "No" << endl;
                        q=0;
                        break;
                    }
            }

            }
        if(q){
        if(res.empty()) //собственно ответ
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
        }

    }
    return 0;
}