#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  int I;
  int J;
  int K;
  auto void A(void);
  auto void B(void);
  auto void C(void);
  K = 0;
  for (I = -1; I != 1 + 1; I += 1) {
    for (J = 0; J != 3 + 1; J += 1) {
      if (I == 1)
        A();
      else
        B();
      if ((I == 1))
        A();
      else
        B();
      if (I == 1)
        A();
      else
        B();
      C();
      if (I != 1)
        A();
      else
        B();
      if (I != 1)
        A();
      else
        B();
      C();
      if (I == 1 && J != 2)
        A();
      else
        B();
      if (I == 1 && J != 2)
        A();
      else
        B();
      C();
      if (I == 1 || 1 <= J && J <= 2)
        A();
      else
        B();
      if (I == 1 || (1 <= J && J <= 2))
        A();
      else
        B();
      C();
      if (I == 0 && 0 == J)
        A();
      else
        B();
      if (I == 0 && J == 0)
        A();
      else
        B();
      C();
    }
  }
  PRINTSTRING(_imp_str_literal("PART 1 OK "));
  for (I = -1; I != 1 + 1; I += 1) {
    for (J = 0; J != 3 + 1; J += 1) {
      if (I == 1 && J == 1)
        A();
      else
        B();
      if (I == 1 && (J == 1))
        A();
      else
        B();
      C();
      if (I == 1 || 1 > J || J > 2)
        A();
      else
        B();
      if (I == 1 || (1 > J || J > 2))
        A();
      else
        B();
      C();
      if (I == 1 && J == 2)
        A();
      else
        B();
      if ((I == 1 && J == 2))
        A();
      else
        B();
      C();
    }
  }
  PRINTSTRING(_imp_str_literal("TEST OK"));
  auto void A(void) {
    _imp_enter();
    K = K << 8 | 'A';
    _imp_leave();
  }
  auto void B(void) {
    _imp_enter();
    K = K << 8 | 'B';
    _imp_leave();
  }
  auto void C(void) {
    _imp_enter();
    if (K == 'AA' || K == 'BB' || K == 'AAA' || K == 'BBB') {
      K = 0;
      {
        _imp_leave();
        return;
      }
    }
    WRITE(I, 1);
    WRITE(J, 1);
    WRITE(K, 1);
    _imp_monitor(0);
    exit(0);
    _imp_leave();
  }

  _imp_leave();
  exit(0);
  return (0);
}
