'BEGIN'
    'INTEGER'
        S;
    'PROCEDURE' P(F, G);
        'PROCEDURE'
            F,
            G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
        'BEGIN'
        'INTEGER'
            X;
        'PROCEDURE' R(F, G);
        'PROCEDURE' F, G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
            'BEGIN'
            OUTREAL(99, S);
            OUTREAL(99, X)
            'END';
        S := S + 1;
        X := S;
        'IF' S = 1 'THEN'
            P(F, R)
        'ELSE'
            F(G, R)
        'END' P;
    'PROCEDURE' Q(F, G);
        'PROCEDURE'
            F,
            G;'COMMENT'(X,Y):'PROCEDURE' X,Y;
        'BEGIN'
    F( Q, Q );
    G( Q, Q)
        'END' Q;
    S := 0;
    P(Q, P);
'END'