#include <stdio.h>

#include <stdlib.h>

enum calculator_state {
  NUMBER_FIRST,
  NUMBER_SECOND,
  RESULT
};

enum calculator_op {
  NO_OP,
  ADD,
  SUB,
  DIV,
  MUL
};
struct calculator {
  // 1 число
  int num1;
  // 2 число
  int num2;
  // 3 операция
  enum calculator_op operation;
  // 4 результат
  int result;
  // 5 состояние атомата
  enum calculator_state state;
};

int main() {
    struct calculator calc;
    calc.state = NUMBER_FIRST;
    calc.operation = NO_OP;
    calc.num1 = 0;
    calc.num2 = 0;
    calc.result = 0;

    int input;
    while (1) {
      scanf("%d", & input);
      switch (calc.state) {
      case NUMBER_FIRST:
        switch (input) {
        case 0:
          calc.num1 = (calc.num1 * 10) + 7;
          break;
        case 1:
          calc.num1 = (calc.num1 * 10) + 8;
          break;
        case 2:
          calc.num1 = (calc.num1 * 10) + 9;
          break;
        case 3:
          calc.operation = DIV;
          calc.state = NUMBER_SECOND;
          break;
        case 4:
          calc.num1 = (calc.num1 * 10) + 4;
          break;
        case 5:
          calc.num1 = (calc.num1 * 10) + 5;
          break;
        case 6:
          calc.num1 = (calc.num1 * 10) + 6;
          break;
        case 7:
          calc.operation = MUL;
          calc.state = NUMBER_SECOND;
          break;
        case 8:
          calc.num1 = (calc.num1 * 10) + 1;
          break;
        case 9:
          calc.num1 = (calc.num1 * 10) + 2;
        case 10:
          calc.num1 = (calc.num1 * 10) + 3;
          break;
        case 11:
          calc.operation = SUB;
          calc.state = NUMBER_SECOND;
          break;
        case 12:
          calc.num1 = 0;
          break;
        case 13:
          calc.state = NUMBER_FIRST;
          calc.operation = NO_OP;
          calc.num1 = 0;
          calc.num2 = 0;
          calc.result = 0;
          break;
        case 14:
          break;
        case 15:
          calc.operation = ADD;
          calc.state = NUMBER_SECOND;
          break;
        }
        break;
        printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state);

      case NUMBER_SECOND:
        switch (input) {
        case 0:
          calc.num2 = (calc.num2 * 10) + 7;
          break;
        case 1:
          calc.num2 = (calc.num2 * 10) + 8;
          break;
        case 2:
          calc.num2 = (calc.num2 * 10) + 9;
          break;
        case 3:

          break;
        case 4:
          calc.num2 = (calc.num2 * 10) + 4;
          break;
        case 5:
          calc.num2 = (calc.num2 * 10) + 5;
          break;
        case 6:
          calc.num2 = (calc.num2 * 10) + 6;
          break;
        case 7:
          break;
        case 8:
          calc.num2 = (calc.num2 * 10) + 1;
          break;
        case 9:
          calc.num2 = (calc.num2 * 10) + 2;
        case 10:
          calc.num2 = (calc.num2 * 10) + 3;
          break;
        case 11:
          break;
        case 12:
          calc.num2 = 0;
          break;
        case 13:
          calc.state = NUMBER_FIRST;
          calc.operation = NO_OP;
          calc.num1 = 0;
          calc.num2 = 0;
          calc.result = 0;
          break;
        case 14:
          switch (calc.operation) {
          case ADD:
            calc.result = calc.num1 + calc.num2;
            calc.state = RESULT;
            break;
          case SUB:
            calc.result = calc.num1 - calc.num2;
            break;
          case MUL:
            calc.result = calc.num1 * calc.num2;
            break;
          case DIV:
            calc.result = calc.num1 / calc.num2;
            break;
            return calc.result;
          }
          break;
          break;
        case 15:
          break;
        }
        printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state);
        break;

      case RESULT:
        switch (input) {
        case 14:
          calc.state = NUMBER_FIRST;
          calc.operation = NO_OP;
          calc.num1 = 0;
          calc.num2 = 0;
          calc.result = 0;
          break;
        }
        break;
        printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state);
      }
    }
    return 0;
}