#include <perms.h>

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

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

  //     2
  //     3    %integer i, init=1, inc=2, final=3

  int I;
  int INIT;
  INIT = 1;
  int INC;
  INC = 2;
  int FINAL;
  FINAL = 3;

  //     4
  //     5    %for i = init, inc, final %cycle

  // %for I = INIT, INC, FINAL %cycle
  {
    int _initial = INIT, _increment = INC, _final = FINAL;
    if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
    I = _initial - _increment;
  L_0001:
    if (I == _final) goto L_0002;
    I += _increment;

    //     6    %repeat

    goto L_0001;
  }

L_0002:;

//     7    %for i = 1, inc, final %cycle

  // %for I = 1, INC, FINAL %cycle
  {
    int _increment = INC, _final = FINAL;
    if (invalid_for_loop(1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, FINAL");
    I = 1 - _increment;
  L_0004:
    if (I == _final) goto L_0005;
    I += _increment;

    //     8    %repeat

    goto L_0004;
  }

L_0005:;

//     9    %for i = init, 2, final %cycle

  // %for I = INIT, 2, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, FINAL");
    I = _initial - (2);
  L_0006:
    if (I == _final) goto L_0007;
    I += 2;

    //    10    %repeat

    goto L_0006;
  }

L_0007:;

//    11    %for i = init, 1, final %cycle

  // %for I = INIT, 1, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1, FINAL");
    I = _initial - (1);
  L_0008:
    if (I == _final) goto L_0009;
    I += 1;

    //    12    %repeat

    goto L_0008;
  }

L_0009:;

//    13    %for i = init, inc, 3 %cycle

  // %for I = INIT, INC, 3 %cycle
  {
    int _initial = INIT, _increment = INC;
    if (invalid_for_loop(_initial, _increment, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, 3");
    I = _initial - _increment;
  L_000A:
    if (I == 3) goto L_000B;
    I += _increment;

    //    14    %repeat

    goto L_000A;
  }

L_000B:;

//    15    %for i = 1, 2, final %cycle

  // %for I = 1, 2, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(1, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, FINAL");
    I = -1;
  L_000C:
    if (I == _final) goto L_000D;
    I += 2;

    //    16    %repeat

    goto L_000C;
  }

L_000D:;

//    17    %for i = 1, 1, final %cycle

  // %for I = 1, 1, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(1, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1, FINAL");
    I = 0;
  L_000E:
    if (I == _final) goto L_000F;
    I += 1;

    //    18    %repeat

    goto L_000E;
  }

L_000F:;

//    19    %for i = init, 2, 3 %cycle

  // %for I = INIT, 2, 3 %cycle
  {
    int _initial = INIT;
    if (invalid_for_loop(_initial, 2, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, 3");
    I = _initial - (2);
  L_0010:
    if (I == 3) goto L_0011;
    I += 2;

    //    20    %repeat

    goto L_0010;
  }

L_0011:;

//    21    %for i = 1, inc, 3 %cycle

  // %for I = 1, INC, 3 %cycle
  {
    int _increment = INC;
    if (invalid_for_loop(1, _increment, 3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, 3");
    I = 1 - _increment;
  L_0012:
    if (I == 3) goto L_0013;
    I += _increment;

    //    22    %repeat

    goto L_0012;
  }

L_0013:;

//    23    %for i = 1, 2, 3 %cycle

  // %for I = 1, 2, 3 %cycle
  {
    I = -1;
  L_0014:
    if (I == 3) goto L_0015;
    I += 2;

    //    24    %repeat

    goto L_0014;
  }

L_0015:;

//    25    %for i = 1, 1, 3 %cycle

  // %for I = 1, 1, 3 %cycle
  {
    I = 0;
  L_0016:
    if (I == 3) goto L_0017;
    I += 1;

    //    26    %repeat

    goto L_0016;
  }

L_0017:;

//    27    %for i = 1, 2, 4 %cycle

  // %for I = 1, 2, 4 %cycle
  {
    if (invalid_for_loop(1, 2, 4)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, 4");
    I = -1;
  L_0018:
    if (I == 4) goto L_0019;
    I += 2;

    //    28    %repeat

    goto L_0018;
  }

L_0019:;

//    29
//    30    init=-1; inc=-2; final=-3

  INIT = -1;
  INC = -2;
  FINAL = -3;

  //    31
  //    32    %for i = init, inc, final %cycle

  // %for I = INIT, INC, FINAL %cycle
  {
    int _initial = INIT, _increment = INC, _final = FINAL;
    if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
    I = _initial - _increment;
  L_001A:
    if (I == _final) goto L_001B;
    I += _increment;

    //    33    %repeat

    goto L_001A;
  }

L_001B:;

//    34    %for i = -1, inc, final %cycle

  // %for I =  -1, INC, FINAL %cycle
  {
    int _increment = INC, _final = FINAL;
    if (invalid_for_loop(-1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I =  -1, INC, FINAL");
    I = -1 - _increment;
  L_001C:
    if (I == _final) goto L_001D;
    I += _increment;

    //    35    %repeat

    goto L_001C;
  }

L_001D:;

//    36    %for i = init, -2, final %cycle

  // %for I = INIT,  -2, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, -2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT,  -2, FINAL");
    I = _initial - (-2);
  L_001E:
    if (I == _final) goto L_001F;
    I -= 2;

    //    37    %repeat

    goto L_001E;
  }

L_001F:;

//    38    %for i = init, -1, final %cycle

  // %for I = INIT,  -1, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, -1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT,  -1, FINAL");
    I = _initial - (-1);
  L_0020:
    if (I == _final) goto L_0021;
    I -= 1;

    //    39    %repeat

    goto L_0020;
  }

L_0021:;

//    40    %for i = init, inc, -3 %cycle

  // %for I = INIT, INC,  -3 %cycle
  {
    int _initial = INIT, _increment = INC;
    if (invalid_for_loop(_initial, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC,  -3");
    I = _initial - _increment;
  L_0022:
    if (I == -3) goto L_0023;
    I += _increment;

    //    41    %repeat

    goto L_0022;
  }

L_0023:;

//    42    %for i = -1, -2, final %cycle

  // %for I =  -1,  -2, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(-1, -2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I =  -1,  -2, FINAL");
    I = 1;
  L_0024:
    if (I == _final) goto L_0025;
    I -= 2;

    //    43    %repeat

    goto L_0024;
  }

L_0025:;

//    44    %for i = -1, -1, final %cycle

  // %for I =  -1,  -1, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(-1, -1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I =  -1,  -1, FINAL");
    I = 0;
  L_0026:
    if (I == _final) goto L_0027;
    I -= 1;

    //    45    %repeat

    goto L_0026;
  }

L_0027:;

//    46    %for i = init, -2, -3 %cycle

  // %for I = INIT,  -2,  -3 %cycle
  {
    int _initial = INIT;
    if (invalid_for_loop(_initial, -2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT,  -2,  -3");
    I = _initial - (-2);
  L_0028:
    if (I == -3) goto L_0029;
    I -= 2;

    //    47    %repeat

    goto L_0028;
  }

L_0029:;

//    48    %for i = init, -1, -3 %cycle

  // %for I = INIT,  -1,  -3 %cycle
  {
    int _initial = INIT;
    if (invalid_for_loop(_initial, -1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT,  -1,  -3");
    I = _initial - (-1);
  L_002A:
    if (I == -3) goto L_002B;
    I -= 1;

    //    49    %repeat

    goto L_002A;
  }

L_002B:;

//    50    %for i = -1, inc, -3 %cycle

  // %for I =  -1, INC,  -3 %cycle
  {
    int _increment = INC;
    if (invalid_for_loop(-1, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I =  -1, INC,  -3");
    I = -1 - _increment;
  L_002C:
    if (I == -3) goto L_002D;
    I += _increment;

    //    51    %repeat

    goto L_002C;
  }

L_002D:;

//    52    %for i = -1, -2, -3 %cycle

  // %for I =  -1,  -2,  -3 %cycle
  {
    I = 1;
  L_002E:
    if (I == -3) goto L_002F;
    I -= 2;

    //    53    %repeat

    goto L_002E;
  }

L_002F:;

//    54    %for i = -1, -1, -3 %cycle

  // %for I =  -1,  -1,  -3 %cycle
  {
    I = 0;
  L_0030:
    if (I == -3) goto L_0031;
    I -= 1;

    //    55    %repeat

    goto L_0030;
  }

L_0031:;

//    56    %for i = -1, -2, -4 %cycle

  // %for I =  -1,  -2,  -4 %cycle
  {
    if (invalid_for_loop(-1, -2, -4)) _imp_signal(5, 1, 0, "Illegal cycle I =  -1,  -2,  -4");
    I = 1;
  L_0032:
    if (I == -4) goto L_0033;
    I -= 2;

    //    57    %repeat

    goto L_0032;
  }

L_0033:;

//    58
//    59    init=1; inc=2; final=-3

  INIT = 1;
  INC = 2;
  FINAL = -3;

  //    60
  //    61    %for i = init, inc, final %cycle

  // %for I = INIT, INC, FINAL %cycle
  {
    int _initial = INIT, _increment = INC, _final = FINAL;
    if (invalid_for_loop(_initial, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC, FINAL");
    I = _initial - _increment;
  L_0034:
    if (I == _final) goto L_0035;
    I += _increment;

    //    62    %repeat

    goto L_0034;
  }

L_0035:;

//    63    %for i = 1, inc, final %cycle

  // %for I = 1, INC, FINAL %cycle
  {
    int _increment = INC, _final = FINAL;
    if (invalid_for_loop(1, _increment, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC, FINAL");
    I = 1 - _increment;
  L_0036:
    if (I == _final) goto L_0037;
    I += _increment;

    //    64    %repeat

    goto L_0036;
  }

L_0037:;

//    65    %for i = init, 2, final %cycle

  // %for I = INIT, 2, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2, FINAL");
    I = _initial - (2);
  L_0038:
    if (I == _final) goto L_0039;
    I += 2;

    //    66    %repeat

    goto L_0038;
  }

L_0039:;

//    67    %for i = init, 1, final %cycle

  // %for I = INIT, 1, FINAL %cycle
  {
    int _initial = INIT, _final = FINAL;
    if (invalid_for_loop(_initial, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1, FINAL");
    I = _initial - (1);
  L_003A:
    if (I == _final) goto L_003B;
    I += 1;

    //    68    %repeat

    goto L_003A;
  }

L_003B:;

//    69    %for i = init, inc, -3 %cycle

  // %for I = INIT, INC,  -3 %cycle
  {
    int _initial = INIT, _increment = INC;
    if (invalid_for_loop(_initial, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, INC,  -3");
    I = _initial - _increment;
  L_003C:
    if (I == -3) goto L_003D;
    I += _increment;

    //    70    %repeat

    goto L_003C;
  }

L_003D:;

//    71    %for i = 1, 2, final %cycle

  // %for I = 1, 2, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(1, 2, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2, FINAL");
    I = -1;
  L_003E:
    if (I == _final) goto L_003F;
    I += 2;

    //    72    %repeat

    goto L_003E;
  }

L_003F:;

//    73    %for i = 1, 1, final %cycle

  // %for I = 1, 1, FINAL %cycle
  {
    int _final = FINAL;
    if (invalid_for_loop(1, 1, _final)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1, FINAL");
    I = 0;
  L_0040:
    if (I == _final) goto L_0041;
    I += 1;

    //    74    %repeat

    goto L_0040;
  }

L_0041:;

//    75    %for i = init, 2, -3 %cycle

  // %for I = INIT, 2,  -3 %cycle
  {
    int _initial = INIT;
    if (invalid_for_loop(_initial, 2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 2,  -3");
    I = _initial - (2);
  L_0042:
    if (I == -3) goto L_0043;
    I += 2;

    //    76    %repeat

    goto L_0042;
  }

L_0043:;

//    77    %for i = init, 1, -3 %cycle

  // %for I = INIT, 1,  -3 %cycle
  {
    int _initial = INIT;
    if (invalid_for_loop(_initial, 1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = INIT, 1,  -3");
    I = _initial - (1);
  L_0044:
    if (I == -3) goto L_0045;
    I += 1;

    //    78    %repeat

    goto L_0044;
  }

L_0045:;

//    79    %for i = 1, inc, -3 %cycle

  // %for I = 1, INC,  -3 %cycle
  {
    int _increment = INC;
    if (invalid_for_loop(1, _increment, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, INC,  -3");
    I = 1 - _increment;
  L_0046:
    if (I == -3) goto L_0047;
    I += _increment;

    //    80    %repeat

    goto L_0046;
  }

L_0047:;

//    81    %for i = 1, 2, -3 %cycle

  // %for I = 1, 2,  -3 %cycle
  {
    if (invalid_for_loop(1, 2, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2,  -3");
    I = -1;
  L_0048:
    if (I == -3) goto L_0049;
    I += 2;

    //    82    %repeat

    goto L_0048;
  }

L_0049:;

//    83    %for i = 1, 1, -3 %cycle

  // %for I = 1, 1,  -3 %cycle
  {
    if (invalid_for_loop(1, 1, -3)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 1,  -3");
    I = 0;
  L_004A:
    if (I == -3) goto L_004B;
    I += 1;

    //    84    %repeat

    goto L_004A;
  }

L_004B:;

//    85    %for i = 1, 2, -4 %cycle

  // %for I = 1, 2,  -4 %cycle
  {
    if (invalid_for_loop(1, 2, -4)) _imp_signal(5, 1, 0, "Illegal cycle I = 1, 2,  -4");
    I = -1;
  L_004C:
    if (I == -4) goto L_004D;
    I += 2;

    //    86    %repeat

    goto L_004C;
  }

L_004D:;

//    87
//    88  %endofprogram

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