RT
#include<bits/stdc++.h>
#define int long long
using namespace std;
string s[2010];
int n,m,x;
signed main(){
while(getline(cin,s[++m])&&s[m]!="END");--m;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
bool flag=1;stack<int>d;
d.push(x);
for(int j=1;j<=m&&flag;j++){
switch(s[j][0]){
case 'I':{ //INV
if(!d.empty()){
int xx=d.top();d.pop();
d.push(-xx);
}
else flag=0;
break;
}
case 'P':{ //POP
if(!d.empty()) d.pop();
else flag=0;
break;
}
case 'N':{ //NUM
string word=s[j].substr(4,s[j].size()-4);
int xx=0;
stringstream sin;
sin<<word;sin>>xx;
d.push(xx);
break;
}
case 'D':{
if(s[j][1]=='U'){ //DUP
if(!d.empty()) d.push(d.top());
else flag=0;
}
else{ //DIV
if(d.size()>1){
int xx=d.top();d.pop();
int y=d.top();d.pop();
if(abs(y/xx)>1000000000) flag=0;
else d.push(y/xx);
}
else flag=0;
}
break;
}
case 'A':{ //ADD
if(d.size()>1){
int xx=d.top();d.pop();
int y=d.top();d.pop();
if(abs(xx+y)>1000000000) flag=0;
else d.push(xx+y);
}
else flag=0;
break;
}
case 'S':{
if(s[j][1]=='W'){ //SWP
if(d.size()>1){
int xx=d.top();d.pop();
int y=d.top();d.pop();
d.push(y);d.push(xx);
}
else flag=0;
}
else{ //SUB
if(d.size()>1){
int xx=d.top();d.pop();
int y=d.top();d.pop();
if(abs(y-xx)>1000000000) flag=0;
else d.push(y-xx);
}
else flag=0;
}
break;
}
case 'M':{
if(s[j][1]=='O'){ //MOD
if(d.size()>1){
int xx=d.top();d.pop();
int y=d.top();d.pop();
if(abs(y%xx)>1000000000) flag=0;
else d.push(y%xx);
}
else flag=0;
}
else{
if(d.size()>1){ //MUL
int xx=d.top();d.pop();
int y=d.top();d.pop();
if(abs(y*xx)>1000000000) flag=0;
else d.push(y*xx);
}
else flag=0;
}
break;
}
}
}
if(!flag||d.size()!=1) cout<<"ERROR\n";
else cout<<d.top()<<endl;
}
return 0;
}