#include <iostream>
#include <stack>
#include <cstring>

using namespace std;

const int NMAX = 5000;

char s[NMAX];
bool rezolva() {
	stack <char> stiva;
	char p;
	
	int n = strlen(s);

	for (int i = 0; i < n; i++) {
		cout << s[i] << ' ';
		if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
			stiva.push(s[i]);
			continue;
		}

		p = ' ';
		if (!stiva.empty()) p = stiva.top(); 

		if (s[i] == ')') {
			if (p == '(') {
				stiva.pop();
				continue;
			}
			return false;
		}
		
		if (s[i] == ']') {
			if (p == '[') {
				stiva.pop();
				continue;
			}
			return false;
		}

		if (s[i] == '}') {
			if (p == '{') {
				stiva.pop();
				continue;
			}
			return false;
		}

		if (s[i] == '|') {
			if (p == '|') stiva.pop();
			else stiva.push(s[i]);
		}
	}

	cout << stiva.size();

	if (stiva.size()) return false;
	return true;
}


int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> s;
		if (rezolva()) cout << "YES\n";
		else cout << "NO\n";
	}
	return 0;
}