import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main
{
private static int u=0;
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
scan.nextLine();
while(n--!=0)
{
String str=scan.nextLine().trim();
int k=str.indexOf('=');
Map<String,Integer> right=work(str.substring(k+1));
Map<String,Integer> left=work(str.substring(0, k));
if(left.equals(right))
System.out.println("Y");
else
System.out.println("N");
// for(String c:left.keySet())
// System.out.println(c+" "+left.get(c));
// System.out.println();
// for(String c:right.keySet())
// System.out.println(c+" "+right.get(c));
}
scan.close();
}
private static Map<String, Integer> work(String str)
{
Map<String, Integer> res=new HashMap<>();
for(int i=0;i<str.length();i++)
{
int j=i+1;
while(j<str.length()&&str.charAt(j)!='+') j++;
String item=str.substring(i, j);
i=j;
int cnt=1,k=0;
while(k<item.length()&&Character.isDigit(item.charAt(k))) k++;
if(k!=0) cnt=Integer.valueOf(item.substring(0,k));
u=k;
Map<String, Integer> t=dfs(item);
for(String c:t.keySet())
{
int s=res.get(c)==null?0:res.get(c);
res.put(c, t.get(c)*cnt+s);
}
}
return res;
}
private static Map<String, Integer> dfs(String str)
{
Map<String, Integer> res=new HashMap<>();
while(u<str.length())
{
if(str.charAt(u)=='(')
{
u++;//跳过(
Map<String, Integer> t = dfs(str);
u++;//跳过)
int cnt=1,k=u;
while(k<str.length()&&Character.isDigit(str.charAt(k))) k++;
if(k>u)
{
cnt=Integer.valueOf(str.substring(u, k));
u=k;
}
for(String c:t.keySet())
{
int s=res.get(c)==null?0:res.get(c);
res.put(c, t.get(c)*cnt+s);
}
}
else if(str.charAt(u)==')') break;
else
{
int k = u + 1;
while (k < str.length() && str.charAt(k) >= 'a' && str.charAt(k) <= 'z') k ++ ;
String key = str.substring(u, k);
u = k;
int cnt = 1;
while (k < str.length() && Character.isDigit(str.charAt(k))) k ++ ;
if (k > u)
{
cnt = Integer.valueOf((str.substring(u,k)));
u = k;
}
int s=res.get(key)==null?0:res.get(key);
res.put(key, s+cnt);
}
}
return res;
}
}