#include <perms.h>

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

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

  //     2     %integer g = 0

  int G;
  G = 0;

  //     3
  //     4     %routine p

  void P(void) {
    //     5        %integer m = 10

    int M;
    M = 10;

    //     6
    //     7        %routine q

    void Q(void) {
      //     8           g = 1

      G = 1;

      //     9           m = 11

      M = 11;

      //    10        %end

      return;
    } /* end of Q */

    //    11
    //    12        q

    Q();

    //    13        write(m, 0);  newline

    _imp_WRITE(M, 0);
    _imp_NEWLINE();

    //    14     %end

    return;
  } /* end of P */

  //    15
  //    16     p

  P();

  //    17     write(g, 0);  newline

  _imp_WRITE(G, 0);
  _imp_NEWLINE();

  //    18
  //    19  %end %of %program

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