#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2    %integer i

  int I;

  //     3    i = 42

  I = 42;

  //     4    %for i = 0, 1, 17 %cycle

  // %for I = 0, 1, 17 %cycle
  {
    I = -1;
  L_0001:
    if (I == 17) goto L_0002;
    I += 1;

    //     5      i = i - 1

    I = I - 1;

    //     6      %continue %if i <= 4

    if (I > 4) goto L_0004;
    goto L_0003;
  L_0004:;

  //     7      i = i - 1

    I = I - 1;

    //     8      %exit %if i = 5

    if (I != 5) goto L_0005;
    goto L_0002;
  L_0005:;

  //     9      i = i - 1

    I = I - 1;

    //    10    %repeat

  L_0003:;
    goto L_0001;
  }

L_0002:;

//    11
//    12    %while i > 5 %cycle

L_0006:;
  if (I <= 5) goto L_0007;

    //    13      i = i - 1

  I = I - 1;

  //    14      %continue %if i <= 4

  if (I > 4) goto L_0008;
  goto L_0009;
L_0008:;

//    15      i = i - 1

  I = I - 1;

  //    16      %exit %if i = 5

  if (I != 5) goto L_000A;
  goto L_0007;
L_000A:;

//    17      i = i - 1

  I = I - 1;

  //    18    %repeat

L_0009:;
  goto L_0006;
L_0007:;

//    19
//    20    %cycle

L_000B:;

//    21      i = i + 1

  I = I + 1;

  //    22      %continue %if i <= 4

  if (I > 4) goto L_000C;
  goto L_000D;
L_000C:;

//    23      i = i - 1

  I = I - 1;

  //    24      %exit %if i = 5

  if (I != 5) goto L_000E;
  goto L_000F;
L_000E:;

//    25      i = i - 1

  I = I - 1;

  //    26    %repeat %until i = 10

L_000D:;
  if (I == 10) goto L_000F;
  goto L_000B;
L_000F:;

//    27
//    28    %while i > 5 %cycle

L_0010:;
  if (I <= 5) goto L_0011;

    //    29      i = i - 1

  I = I - 1;

  //    30      %continue %if i <= 4

  if (I > 4) goto L_0012;
  goto L_0013;
L_0012:;

//    31      i = i - 1

  I = I - 1;

  //    32      %exit %if i = 5

  if (I != 5) goto L_0014;
  goto L_0011;
L_0014:;

//    33      i = i - 1

  I = I - 1;

  //    34    %repeat %until i = 10

L_0013:;
  if (I == 10) goto L_0011;
  goto L_0010;
L_0011:;

//    35
//    36    %for i = 0, 1, 17 %cycle

// %for I = 0, 1, 17 %cycle
  {
    I = -1;
  L_0015:
    if (I == 17) goto L_0016;
    I += 1;

    //    37      i = i - 1

    I = I - 1;

    //    38      %continue %if i <= 4

    if (I > 4) goto L_0018;
    goto L_0017;
  L_0018:;

  //    39      i = i - 1

    I = I - 1;

    //    40      %exit %if i = 5

    if (I != 5) goto L_0019;
    goto L_0016;
  L_0019:;

  //    41      i = i - 1

    I = I - 1;

    //    42    %repeat %until i = 10

  L_0017:;
    if (I == 10) goto L_0016;
    goto L_0015;
  }

L_0016:;

//    43
//    44
//    45  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}