#include #include #include #include #include #include using namespace std; #define REP(i,n) for(int i = 0; i < (n); ++i) #define FOR(i,a,b) for(int i = (a); i < (b); ++i) #define MP make_pair #define ST first #define ND second #define N 10010 #define MAXX 1000000000 char t[10]; string s; int id,i,j,ins[100005],tab[N][1005],d[N],good[N],l,n; int main() { while (1) { scanf ("%s",t); s=t; if (s=="QUIT") break; id=0; while (1) { if (s=="END") break; if (s=="NUM") { scanf ("%d",&l); ins[id++]=-l; } else if (s=="POP") ins[id++]=1; else if (s=="INV") ins[id++]=2; else if (s=="DUP") ins[id++]=3; else if (s=="SWP") ins[id++]=4; else if (s=="ADD") ins[id++]=5; else if (s=="SUB") ins[id++]=6; else if (s=="MUL") ins[id++]=7; else if (s=="DIV") ins[id++]=8; else if (s=="MOD") ins[id++]=9; scanf ("%s",t); s=t; } scanf ("%d",&n); for (i=0;i MAXX) good[j]=0; else { tab[j][d[j]-2]+=tab[j][d[j]-1]; d[j]--; } } } else if (ins[i]==6) { for (j=0;j MAXX) good[j]=0; else { tab[j][d[j]-2]-=tab[j][d[j]-1]; d[j]--; } } } else if (ins[i]==7) { for (j=0;j MAXX) good[j]=0; else { tab[j][d[j]-2]*=tab[j][d[j]-1]; d[j]--; } } } else if (ins[i]==8) { for (j=0;j