hmm, I just noticed a slight optimization you could make to the code, at the start where it goes:0->X
:0->Y
you could change that to :Delvar XDelvarY
it would save 3 bytes I believe
EDIT: upon closer inspection I found another optimizations, replace:M+(K=34)(M<5)-(K=25)(M>1→M
with this::M+(K=34 and M<5)-(K=25 and M>1→M
so that brings the total bytes saved to 5...