#include<bits/stdc++.h>
using namespace std;
long long a,l,n,l1;
bool flag=1;
string sa[2005],k,s1[2005];
stack<long long> s;
void Num(long long x){
s.push(x);
}
void Pop(){
if(s.empty()){
cout<<"ERROR!\n";
flag=0;
}else s.pop();
}
void Inv(){
if(s.empty()){
cout<<"ERROR!\n";
flag=0;
}else{
long long o=s.top();
if(abs(o+o)>1000000000){
cout<<"ERROR!\n";
flag=0;
}else{
s.pop();
s.push(o-o-o);
}
}
}
void Dup(){
if(s.empty()){
cout<<"ERROR!\n";
flag=0;
}
else s.push(s.top());
}
void Swp(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}
else {
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
s.push(o);
s.push(u);
}
}
void Add(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}
else{
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
if(abs(o+u)>1000000000){
cout<<"ERROR!\n";
flag=0;
}
else{
s.push(o+u);
}
}
}
void Mul(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}else{
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
if(abs(o*u)>1000000000){
flag=0;
cout<<"ERROR!\n";
}
else{
s.push(o*u);
}
}
}
void Sub(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}else{
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
if(abs(u-o)>1000000000){
cout<<"ERROR!\n";
flag=0;
}
else{
s.push(u-o);
}
}
}
void Div(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}else{
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
if(o==0){
cout<<"ERROR!\n";
flag=0;
}else{
if(abs(u/o)>1000000000){
cout<<"ERROR!\n";
flag=0;
}else{
s.push(u/o);
}
}
}
}
void Mod(){
if(s.size()<2){
cout<<"ERROR!\n";
flag=0;
}else{
long long o=s.top();
s.pop();
long long u=s.top();
s.pop();
if(abs(u%o)>1000000000){
cout<<"ERROR!\n";
flag=0;
}else{
s.push(u%o);
}
}
}
void End(){
if(s.size()!=1){
cout<<"ERROR!\n";
flag=0;
}else cout<<s.top()<<endl;
}
bool check(string s){
if(s[0]=='-')s.erase(0,1);
int cnt1=0,cnt2=0;
for(int i=0;i<s.size();i++){
if(s[i]=='1')cnt1++;
if(s[i]=='0')cnt2++;
}
if(s.size()>10)return true;
else{
if(s.size()==10&&(cnt1!=1||cnt2!=9))return true;
}
return false;
}
int main(){
while(cin>>sa[++l]){
if(sa[l]=="NUM"){
cin>>s1[++l1];
}
if(sa[l]=="END")break;
}
cin>>n;
for(int j=1;j<=n;j++){
flag=1;
while(!s.empty()){
s.pop();
}
cin>>k;
if(check(k)){
cout<<"ERROR!\n";
continue;
}
stringstream ss;
long long b=0;
ss<<k;
ss>>b;
s.push(b);
int l2=0;
for(int i=1;i<=l;i++){
if(sa[i]=="NUM"){
++l2;
if(check(s1[l2])){
cout<<"ERROR!\n";
break;
}
stringstream ss1;
long long b1=0;
ss1<<s1[l2];
ss1>>b1;
Num(b1);
}else if(sa[i]=="POP"){
Pop();
}else if(sa[i]=="INV"){
Inv();
}else if(sa[i]=="DUP"){
Dup();
}else if(sa[i]=="SWP"){
Swp();
}else if(sa[i]=="ADD"){
Add();
}else if(sa[i]=="SUB"){
Sub();
}else if(sa[i]=="MUL"){
Mul();
}else if(sa[i]=="DIV"){
Div();
}else if(sa[i]=="MOD"){
Mod();
}else if(sa[i]=="END"){
End();
}
if(!flag)break;
}
}
}