#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  static int FAIL = 0;
  int I;
  auto int FACT(int N) {
    _imp_enter();
    if (N <= 1) return (1);
    return (N * FACT(N - 1));
    _imp_leave();
  }
  auto void COMPARE(int I, int J) {
    _imp_enter();
    if (I != J) {
      PRINTSTRING(_imp_str_literal("ERROR"));
      WRITE(I, 5);
      WRITE(J, 5);
      FAIL = 1;
      NEWLINE();
    }
    _imp_leave();
  }
  for (I = 2; I != 10 + 1; I += 1) COMPARE(FACT(I), I * FACT(I - 1));
  if (FAIL == 0) PRINTSTRING(_imp_str_literal("TEST OK"));
  _imp_leave();
  exit(0);
  return (0);
}
