#!perl -l sub f{$i=pop||return;/[$i]/;$i=~/$&/;my($m,$r)=($&,$');f($`).f($r).$m}$_=pop;print f pop
#!perl sub f{my($p,$i)=@_;$p=~/[$i]/;$i=~/$&/;my($l,$m,$r)=($`,$&,$');$l&&f($p,$l);$r&&f($p,$r);print$m;}f@ARGV;print"\n"