%%HP: T(1)A(D)F(,);
DIR
  DIOPH
     GCDD  M
       OBJ DROP 0
0 ROT 1 SWAP 1
DEPTH 8 -
        START SWAP
OVER 4 ROLL * +
        NEXT ROT
ROT DROP2 ROT OVER
* NEG M + ROT / 2
LIST M
      
    
  GCD
     DUP2 SWAP
OVER
      WHILE MOD DUP
      REPEAT SWAP
OVER
      END DROP
    
  LCM
     DUP2 GCD / *
    
  GCDD
     DUP2
      IF SWAP AND
NOT
      THEN
"  Invalid data!"
CLLCD 4 DISP 1 WAIT
KILL
      END DUP2
      IF MOD NOT
      THEN DUP2 >
        IF
        THEN SWAP
        END
      END DUP2 DUP2
{ } SWAP ROT OVER
      WHILE MOD DUP
      REPEAT SWAP
OVER DUP2 NEG / IP
5 ROLL + 4 ROLLD
      END DROP
    
END
