#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll M=1e9;
bool flag=1;
int n,cnt=1;
string a[2050],s;
void f(ll x){
stack<int> stk;
while(!stk.empty()) stk.pop();
stk.push(x);
for(int i=1;i<=cnt;i++){
if(a[i]=="NUM"){
ll a;cin>>a;
if(a>M){
flag=0;
break;
}
stk.push(a);
}
else if(a[i]=="POP"){
if(stk.empty()){
flag=0;
break;
}
stk.pop();
}
else if(a[i]=="INV"){
if(stk.empty()){
flag=0;
break;
}ll a=stk.top();
stk.pop();
stk.push(-1*a);
}
else if(a[i]=="DUP"){
if(stk.empty()){
flag=0;
break;
}ll a=stk.top();
stk.push(a);
}
else if(a[i]=="SWP"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
stk.push(a);
stk.push(b);
}
else if(a[i]=="ADD"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
if(abs(a+b)>M){
flag=0;
break;
}stk.push(a+b);
}
else if(a[i]=="SUB"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
stk.push(b-a);
}
else if(a[i]=="MUL"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
if(abs(a*b)>M){
flag=0;
break;
}stk.push(a*b);
}
else if(a[i]=="DIV"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
if(a==0){
flag=0;
break;
}stk.push(b/a);
}
else if(a[i]=="MOD"){
if(stk.size()<2){
flag=0;
break;
}ll a=stk.top();
stk.pop();
ll b=stk.top();
stk.pop();
if(a==0){
flag=0;
break;
}stk.push(b%a);
}
else if(a[i]=="END") break;
}
if(stk.size()!=1) flag=0;
if(!flag) cout<<"ERROR"<<endl;
else cout<<stk.top()<<endl;
}
int main(){
while(cin>>s){
a[cnt]=s;
cnt++;
if(s=="END") break;
}
cin>>n;
while(n--){
int x;
cin>>x;
f(x);
}
return 0;
}