#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7,A=998244353;
int n,len,ans,cnt;
char s[55];
stack<int>sa;
stack<char>sc;
void get(char *s){
char c=getchar();
int tot=0;
while(c!='\n'&&c!='\r'){
*(s+tot)=c;
tot++;
c=getchar();
}
*(s+tot)='\0';
}
int fpow(int a,int b){
int res=1;
while(b){
if(b&1)res=res*a%mod;
a=a*a%mod;
b>>=1;
}
return res;
}
signed main()
{
get(s+1);
len=strlen(s+1);
for(int i=1;i<=len;){
while(i<=len&&s[i]==' ')i++;
if(i>len)break;
if(s[i]=='(')sc.push('('),i++;
else if(s[i]=='+'||s[i]=='-'){
while(!sc.empty()&&(sc.top()=='+'||sc.top()=='-'||sc.top()=='*'||sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='*'){
while(!sc.empty()&&(sc.top()=='*'||sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='^'){
while(!sc.empty()&&(sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='a')sa.push(A),i++;
else if(s[i]==')'){
while(sc.top()!='('){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.pop();
i++;
}
else{
int x=0;
while(s[i]>='0'&&s[i]<='9')x=(x<<1)+(x<<3)+(s[i]^'0'),i++;
sa.push(x);
}
}
while(!sc.empty()){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
ans=sa.top();
scanf("%lld\n",&n);
for(int i=1;i<=n;i++){
get(s+1);
len=strlen(s+1);
while(!sa.empty())sa.pop();
while(!sc.empty())sc.pop();
int Y=0;
for(int i=1;i<=len;){
while(i<=len&&s[i]==' ')i++;
if(i>len)break;
if(s[i]=='(')sc.push('('),i++,Y++;
else if(s[i]=='+'||s[i]=='-'){
while(!sc.empty()&&(sc.top()=='+'||sc.top()=='-'||sc.top()=='*'||sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='*'){
while(!sc.empty()&&(sc.top()=='*'||sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='^'){
while(!sc.empty()&&(sc.top()=='^')){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.push(s[i]);
i++;
}
else if(s[i]=='a')sa.push(A),i++;
else if(s[i]==')'){
if(!Y)goto a;
while(sc.top()!='('){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
sc.pop();
Y--;
i++;
}
else{
int x=0;
while(s[i]>='0'&&s[i]<='9')x=(x<<1)+(x<<3)+(s[i]^'0'),i++;
sa.push(x);
}
}
while(!sc.empty()){
int a=sa.top();
sa.pop();
int b=sa.top();
sa.pop();
if(sc.top()=='+')sa.push((a+b)%mod);
else if(sc.top()=='-')sa.push(((b-a)%mod+mod)%mod);
else if(sc.top()=='*')sa.push(a*b%mod);
else sa.push(fpow(b,a));
sc.pop();
}
if(sa.top()==ans)printf("%c",'A'+i-1);
a: ;
}
return 0;
}