#include <perms.h>

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

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

  //     2     %integer x = 0

  int X;
  X = 0;

  //     3
  //     4     %routine step1

  void STEP1(void) {
    //     5        x = 1

    X = 1;

    //     6     %end

    return;
  } /* end of STEP1 */

  //     7
  //     8     %routine step2

  void STEP2(void) {
    //     9        x = 2

    X = 2;

    //    10     %end

    return;
  } /* end of STEP2 */

  //    11
  //    12     %routine step3

  void STEP3(void) {
    //    13        x = 3

    X = 3;

    //    14     %end

    return;
  } /* end of STEP3 */

  //    15
  //    16     step1

  STEP1();

  //    17     step2

  STEP2();

  //    18     step3

  STEP3();

  //    19     write(x, 0);  newline

  _imp_WRITE(X, 0);
  _imp_NEWLINE();

  //    20  %endofprogram

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