#include long long stack[1001]; int sp; char kod[100001]; int cp; long long konst[100001]; int k = 0; int main() { int i, n; char c1, c2, c3; long long t; int kp, hiba; while (1) { i = 0; k = 0; while (1) { scanf("%c%c%c", &c1, &c2, &c3); if (c1 == 'Q') return 0; if (c1 == 'S') { if (c2 == 'W') kod[i] = 'W'; else kod[i] = 'S'; } else if (c1 == 'M') { if (c2 == 'O') kod[i] = 'O'; else kod[i] = 'M'; } else if (c1 == 'D') { if (c2 == 'I') kod[i] = 'V'; else kod[i] = 'D'; } else if (c1 == 'N') { scanf("%lld", &t); konst[k++] = t; kod[i] = 'N'; } else { kod[i] = c1; } scanf("\n"); ++i; if (c1 == 'E') break; } scanf("%d\n", &n); for (i = 0; i < n; ++i) { scanf("%lld\n", &(stack[0])); sp = 1; kp = 0; hiba = 0; for (cp = 0; kod[cp] != 'E'; ++cp) { if (hiba) break; switch (kod[cp]) { case 'N': stack[sp++] = konst[kp++]; break; case 'P': if (--sp < 0) hiba = 1; break; case 'I': if (sp == 0) {hiba = 1;break;} stack[sp-1] = -stack[sp-1]; break; case 'D': if (sp == 0) {hiba = 1;break;} stack[sp] = stack[sp-1]; ++sp; break; case 'W': if (sp < 2) {hiba = 1;break;} t = stack[sp-1]; stack[sp-1] = stack[sp-2]; stack[sp-2] = t; break; case 'A': if (sp < 2) {hiba = 1;break;} stack[sp-2] += stack[sp-1]; --sp; break; case 'S': if (sp < 2) {hiba = 1;break;} stack[sp-2] -= stack[sp-1]; --sp; break; case 'M': if (sp < 2) {hiba = 1;break;} stack[sp-2] *= stack[sp-1]; --sp; break; case 'V': if (sp < 2) {hiba = 1;break;} if (stack[sp-1] == 0) {hiba=1;break;} stack[sp-2] /= stack[sp-1]; --sp; break; case 'O': if (sp < 2) {hiba = 1;break;} if (stack[sp-1] == 0) {hiba=1;break;} stack[sp-2] %= stack[sp-1]; --sp; break; } if (stack[sp-1] > 1000000000 || stack[sp-1] < -1000000000) hiba=1; } if (hiba || sp != 1) { printf("ERROR\n"); } else { printf("%lld\n", stack[0]); } } printf("\n"); } return 0; }