#include<stdio.h>
#include<string.h>
int main()
{
int t;
scanf("%d",&t);//有几组数据
getchar();
while(t--)
{
int a[300];
char b[300],s[300];
int top1=-1,m,top2=-1,i,n=0,flag=1;
gets(s);//整体存放到一个字符组里面
m=strlen(s);
for(i=0;i<m;i++)
{
if((s[i]<'0'|| s[i]>'9') && s[i]!=')')
{//当为字符 时候,就存放到b这个以数组开的 栈 中
top1++;//栈的栈顶
b[top1]=s[i];//压栈
}
if(s[i]>='0'&& s[i]<='9')
{
n=10*n+s[i]-'0';//如果数字是两位以上的,要注意恢复原来数字
flag=1;//设个标记,如果下面遇到其他字符的话,把数字压栈
}
if((s[i]==')'||s[i]==','||i+1==m)&&flag)//遇到","")“时把数字压栈
{
top2++;
a[top2]=n;
flag=0;
n=0;//压栈之后,把n初始化
}
if(s[i]==')')//遇到右括号,开始计算这个括号里面的表达式
{
if(b[top1-2]=='d')
{
n=a[top2]+a[top2-1];
top2=top2-1;//计算过加法之后,把数字栈中的两个加数弹出,同时,把和压进去
a[top2]=n;//将和压栈
n=0;
top1=top1-5;//此时,计算过一个括号里面的运算,将字符栈中的5个字符弹出,直至遇到逗号
}
else if(b[top1-2]=='n')
{
if(a[top2]>a[top2-1])
n=a[top2-1];
else
n=a[top2];
top2--;
a[top2]=n;
n=0;
top1=top1-5;
}
else if(b[top1-2]=='x')
{
if(a[top2]<a[top2-1])
n=a[top2-1];
else
n=a[top2];
top2--;
a[top2]=n;
n=0;
top1=top1-5;
}
}
}
printf("%d\n",a[top2]);
}return 0;
}