#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<stack>
#include<stdio.h>
using namespace std;
int main()
{
int n;
int i;
string str;
scanf("%d",&n);
lable:
if(n==0)
return 0;
cin>>str;
stack<char> sta;
for(i=0;i<str.length();i++)
{
switch(str[i])
{
case '(':
sta.push(str[i]);
break;
case '[':
sta.push(str[i]);
break;
case ')':
if(sta.empty()||sta.top()=='[')//堆栈空
{
printf("No\n");
n--;//goto之前一定要改变临界条件
goto lable;//break; //对case
}
if(sta.top()=='(')
{
sta.pop();
}
break;
case ']':
if(sta.empty()||sta.top()=='(')//堆栈空
{
printf("No\n");
n--;//goto之前一定要改变临界条件
goto lable;
}
if(sta.top()=='[')
sta.pop();
break;
}
}
if(sta.empty())
printf("Yes\n");
else
printf("No\n");
n--;
goto lable;
}