#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, int MULT) {
    _imp_enter();
    if (N <= 1) return (MULT);
    return (FACT(N - 1, MULT * N));
    _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 != 100 + 1; I += 1) COMPARE(FACT(I, 1), I * FACT(I - 1, 1));
  if (FAIL == 0) PRINTSTRING(_imp_str_literal("TEST OK"));
  _imp_leave();
  exit(0);
  return (0);
}
