#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv) {
  int op1, op2, op3;
  char *op[] = { "+", "-", "//", "*", "&", "!", "!!", "<<", ">>", "^^" };
  int lastop = sizeof(op)/sizeof(char *);
  fprintf(stdout, "%%begin\n  %%integer b, c, d, e\n");
  fprintf(stdout, "  e = 2; d = 3; c = 4; b = 5\n");
  for (op1 = 0; op1 < lastop; op1++) {
    for (op2 = 0; op2 < lastop; op2++) {
#ifdef IMP
      fprintf(stdout, "  printstring(\"b %s c %s d = \"); write(b %s c %s d,0); newline\n", op[op1], op[op2], op[op1], op[op2]);
      fprintf(stdout, "  printstring(\"(b %s c) %s d = \"); write((b %s c) %s d,0); newline\n", op[op1], op[op2], op[op1], op[op2]);
      fprintf(stdout, "  printstring(\"b %s (c %s d) = \"); write(b %s (c %s d),0); newline\n", op[op1], op[op2], op[op1], op[op2]);
      for (op3 = 0; op3 < lastop; op3++) {
        fprintf(stdout, "  printstring(\"b %s c %s d %s e = \"); write(b %s c %s d %s e,0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"(b %s c) %s d %s e = \"); write((b %s c) %s d %s e,0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"b %s (c %s d) %s e = \"); write(b %s (c %s d) %s e,0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"b %s c %s (d %s e) = \"); write(b %s c %s (d %s e),0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"(b %s c %s d) %s e = \"); write((b %s c %s d) %s e,0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"b %s (c %s d %s e) = \"); write(b %s (c %s d %s e),0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
        fprintf(stdout, "  printstring(\"(b %s c) %s (d %s e) = \"); write((b %s c) %s (d %s e),0); newline\n", op[op1], op[op2], op[op3], op[op1], op[op2], op[op3]);
      }
#else
      fprintf(stdout, "  a = b %s c %s d;\n", op[op1], op[op2]);
      fprintf(stdout, "  a = (b %s c) %s d;\n", op[op1], op[op2]);
      fprintf(stdout, "  a = b %s (c %s d);\n", op[op1], op[op2]);
      for (op3 = 0; op3 < lastop; op3++) {
        fprintf(stdout, "  a = b %s c %s d %s e;\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = (b %s c) %s d %s e;\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = b %s (c %s d) %s e;\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = b %s c %s (d %s e);\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = (b %s c %s d) %s e;\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = b %s (c %s d %s e);\n", op[op1], op[op2], op[op3]);
        fprintf(stdout, "  a = (b %s c) %s (d %s e);\n", op[op1], op[op2], op[op3]);
      }
#endif
    }
  }
  fprintf(stdout, "%%endofprogram\n");
  exit(0);
}
