PROGRAM HANOI(INPUT, OUTPUT);VAR RINGS,    DEST,    HOME : INTEGER;PROCEDURE TOWER        (RING, HOME, DEST : INTEGER);  VAR OTHER :INTEGER;  BEGIN;  OTHER := 1;  WHILE (OTHER = DEST) OR                  (OTHER = HOME) DO     OTHER := OTHER + 1;  IF RING = 1 THEN    WRITELN('MOVE ',RING,' FROM ',                   HOME,' TO ',DEST)  ELSE   BEGIN;    TOWER(RING-1, HOME, OTHER);    WRITELN('MOVE ',RING,' FROM ',                   HOME,' TO ',DEST);    TOWER(RING-1, OTHER, DEST);   END END;BEGIN;   WRITE('HOW MANY RINGS SHOULD THE TOWER GURU MOVE? ');   READ(RINGS);   WRITE('WHICH OF THE THREE RINGS DOES THE STACK START ON? ');   READ(HOME);   WRITE('WHICH RING SHOULD I MOVE THE STACK FOR? ');   READ(DEST);   WRITE(CHR(125));     TOWER(RINGS,HOME,DEST)END.    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,