%%HP: T(3)A(R)F(.);
\<< DUP SIZE ROT DUP
SIZE DUP 4 PICK
  IF >
  THEN 4 ROLL 4
ROLL
  END \-> g gs sh s
  \<< { } 1 s
    FOR ss g LIST\->
1 SWAP
      START sh ss
GET * gs ROLL
      NEXT 1 s ss -
DUP2
      IF \<=
      THEN
        START 0
        NEXT
      ELSE DROP2
      END gs s ss -
+ \->LIST PADD
    NEXT
  \>>
\>>
