<>; $_=<>; @d=sort/\d/g; @D=sort{1}sort/[-+]/g; print eval reverse join'',map$_.$D[$i++],@d; print$"; if(/-/){ @D=sort{1}@D; pop@D; $e.=(shift@d).$_ for@D; $e.=shift@d; print eval"$e-".join'',sort{1}@d }else{ $_[$j++%(@D+1)]=~s/^/$_/for sort{1}@d; print eval join('+',@_)=~s/0\B//gr }