$|--; print join $", map { $_[$_{$_}] = sub { join $,, map { $_ = (ord) - ( $_[0] ? ($_[0]+4+$=)*$= : $= ); $_ += (2+$=)*2 while $_ < (1<<$.)-2-3*$=; chr } split $,, pop } -> ($_{$_}, $_) } map { $_{$_} = $a++; $.++; $_ } map { y; ;;d; $= /= 1.5; $.++; $_ } sub { split $/, join q,,, ; unshift @_, map { $. = y---c - $|--; $_ } shift; { undef @;; map @{[ push @{ $;[ ord((/.{$.}(.)/)[$|]) ] }, $_ ]},@_; @_ = map @$_, @;; $.-- && redo } @_[$|--..$^F+$|] } -> ()