#include <bits/stdc++.h>

using namespace std;
const int MAXN = 500005;

vector<char> 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;
}