code 34375;
    integer procedure EIGCOM(AR, AI, N, EM, VALR, VALI, VR, VI);
    value N; integer N; array AR, AI, EM, VALR, VALI, VR, VI;
    begin integer I;
        integer array INT[1:N];
        array D, B, DEL, TR, TI[1:N];
        EQILBRCOM(AR, AI, N, EM, D, INT);
        EM[1]:= COMEUCNRM(AR, AI, N - 1, N);
        HSHCOMHES(AR, AI, N, EM, B, TR, TI, DEL);
        I:= EIGCOM:= QRICOM(AR, AI, B, N, EM, VALR, VALI, VR,
        VI); if I = 0 then 
        begin BAKCOMHES(AR, AI, TR, TI, DEL, VR, VI, N, 1, N);
            BAKLBRCOM(N, 1, N, D, INT, VR, VI);
            SCLCOM(VR, VI, N, 1, N)
        end 
    end EIGCOM;
        eop