sub f{ my@a; /(.)(.*)(?!\1)(.)(.*)\3(?{push@a,"$1$3$3 $`$2$4$'"})^/ for@_; my$s=0; / /,$s+=$-=$`-$s+f($')for@a; $s; } print f<>