/*
*/

//#pragma comment(linker, "/STACK:16777216")
#define _CRT_SECURE_NO_WARNINGS

#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <assert.h>

#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash
#define norm asdfasdgasdgsd

#define eps 1e-9
#define M_PI 3.141592653589793
#define bs 1000000007
#define bsize 256

using namespace std;

const int INF = 1e9;
const int N = 500031;

int tests;

bool is_opn(char c)
{
	if (c == '('||c=='['||c=='{'||c=='|')
		return true;
	return false;
}

char paired(char c)
{
	if (c == ')')
		return '(';
	if (c == ']')
		return '[';
	if (c == '}')
		return '{';
}

bool check(string st)
{
	stack< char> c;
	for (int i = 0; i < st.size(); i++)
	{
	//	cout << i << "%" << c.size() << endl;

		if (st[i] == '|')
		{
			if (c.size() == 0)
			{
				c.push(st[i]);
				continue;
			}
			char cc = c.top();
			//cout << "@" << cc << endl;
			if (cc == '|')
			{
				c.pop();
				continue;
			}
			c.push(st[i]);
			continue;
		}

		if (is_opn(st[i]))
		{
			c.push(st[i]);
			continue;
		}
		if (c.size() == 0)
			return false;
		char cc = c.top();
		c.pop();
		if (paired(st[i]) != cc)
			return false;
	}
	//cout << c.size() << endl;
	if (c.size())
		return false;
	return true;
}

int main(){
	//freopen("fabro.in","r",stdin);
	//freopen("fabro.out","w",stdout);
	//freopen("F:/in.txt", "r", stdin);
	//freopen("F:/output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	//cin.tie(0);

	cin >> tests;
	for (; tests; --tests)
	{
		string st;
		cin >> st;
		if (check(st))
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
	}
	cin.get(); cin.get();
	return 0;
}