lines
tail
2
step
m:
    read-nums
    2
    chunks
    2
    range
    itemize
    swap
    {
        extract-array
        nip-a
        16
        range
        m:
            pop-b
            push-a
            4
            /
            binary #(num to list)
            1
            swap
            {
                tuck-b
                pow
                swap
                square
                *
                push-a
                %
            }
            each
        }
            square
            inc
            push-a
            divides
        f4
        length
        not
        {
            push-a
            dup
            even
            -
            @9
            min
            {
                dup
                square
                double
                push-a
                >
                    tuck
                    %
                f2
            }
            64
            times #(eval)
            pair
        }
            even
            times #(list)
            @2
            half
            push-a
            itemize
        b6
        pair
        get
        eval
        pop-a
        {
                dup
                reverse
            m2
            m:
                dup
                left-uncons
                negate
                catenate #(list+elem)
                pair
                    push-a
                        *
                    z1
                    sum
                    abs
                m5
                sort #(list)
            }
            sort #(list)
            group
                head
            m1
        }
        times #(eval)
    }
    each
            show
            ( "^2" )
            catenate #(list+list)
        b3
        each
        "+"
        swap
        "="
    m6
    init
    unwords
    new-line