#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int fa[1010],tp[1010];
int son[1010][2];
int mi[1010],ma[1010];
int nn,now;
char s[1010];
void Build(int p,int tp1,int mi1,int ma1)
{
	tp[p]=tp1;
	mi[p]=mi1;
	ma[p]=ma1;
}
void update(int x)
{
	if(!x)
		return ;
	int mi1=mi[x],ma1=ma[x];
	if(tp[x]==0)
	{
		mi[x]=max(mi[son[x][0]],mi[son[x][1]]);
		ma[x]=max(ma[son[x][0]],ma[son[x][1]]);
	}
	else
	{
		mi[x]=min(mi[son[x][0]],mi[son[x][1]]);
		ma[x]=min(ma[son[x][0]],ma[son[x][1]]);
	}
	if(mi[x]!=mi1||ma[x]!=ma1)
		update(fa[x]);
}
int main()
{
	int T,l;
	scanf("%d",&T);
	fa[1]=0;
	while(T--)
	{
		scanf("%s",s+1);
		l=strlen(s+1);
		for(int i=1;i<=1000;i++)
		{
			mi[i]=0;
			ma[i]=99;
		}
		nn=0;
		now=++nn;
		for(int i=1;i<=l;i++)
		{
			if(s[i]>='0'&&s[i]<='9')
			{
				if(mi[now])
					mi[now]=ma[now]=mi[now]*10+s[i]-'0';
				else if(s[i]=='0')
					Build(now,2,0,0);
				else
					Build(now,2,s[i]-'0',(s[i]-'0')*10+9);
				update(fa[now]);
			}
			else if(s[i]=='^')
			{
				Build(now,0,0,99);
				son[now][0]=++nn;
				fa[nn]=now;
				son[now][1]=++nn;
				fa[nn]=now;
			}
			else if(s[i]=='_')
			{
				Build(now,1,0,99);
				son[now][0]=++nn;
				fa[nn]=now;
				son[now][1]=++nn;
				fa[nn]=now;
			}
			else if(s[i]=='(')
				now=son[now][0];
			else 
			{
				if(tp[now]==2)
				{
					ma[now]=mi[now];
					update(fa[now]);
				}
				if(s[i]==',')
					now=son[fa[now]][1];
				else if(s[i]==')')
					now=fa[now];
			}
			if(ma[1]==mi[1])
			{
				printf("%d %d\n",mi[1],i);
				break;
			}
		}
	}
	return 0;
}