#include<stdio.h>
#include<algorithm>
using namespace std;
char in[1100];
int at=0;
pair<int,int>expr(int a,int b);
pair<int,int>term(int a,int b){
	if('0'<=in[at]&&in[at]<='9'){
		if(in[at]=='0'){
			at++;
			return make_pair(0,at-1);
		}
		pair<int,int>ret=make_pair(-2,0);
		if(in[at]-'0'>b){
			ret=make_pair(b+1,at);
		}
		if((a>(in[at]-'0')*10+9)){
			ret=make_pair(a-1,at);
		}
		int v=0;
		while('0'<=in[at]&&in[at]<='9'){
			v*=10;v+=in[at]-'0';
			at++;
		}
		if(ret.first==-2){
			if(v>=10)ret=make_pair(v,at-1);
			else ret=make_pair(v,at);
		}
		return ret;
	}else{
		return expr(a,b);
	}
}
pair<int,int>expr(int a,int b){
	//printf("%d %d %d\n",at,a,b);
	if(in[at]!='^'&&in[at]!='_'){
		return term(0,99);
	}
	int z=0;
	if(in[at]=='^'){
		z=1;
	}
	at+=2;
	pair<int,int> tmp=term(a,b);
	pair<int,int>ret=make_pair(-2,-2);
	if(z==0&&tmp.first==0)ret=tmp;
	if(z==1&&tmp.first==99)ret=tmp;
	if(tmp.first!=-1&&z==0&&a>tmp.first)ret=tmp;
	if(tmp.first!=-1&&z==1&&b<tmp.first)ret=tmp;
	at++;
	int L=a;int R=b;
	if(z==0){if(tmp.first!=-1)R=min(R,tmp.first-1);}
	else {if(tmp.first!=-1)L=max(L,tmp.first+1);}
	pair<int,int> tmp2=term(L,R);

	if(tmp.first==-1&&z==0)tmp.first=110;
	if(tmp2.first==-1&&z==0)tmp2.first=110;
	if(ret.first==-2){
		if(z==0)ret.first=min(tmp.first,tmp2.first);
		else ret.first=max(tmp.first,tmp2.first);
		ret.second=tmp2.second;
	}
	at++;
	return ret;
}
int main(){
	int a;scanf("%d",&a);
	while(a--){
		scanf("%s",in);
		at=0;
		pair<int,int> ret=expr(0,99);
		printf("%d %d\n",ret.first,ret.second+1);
	}
}