$N=<>; $d[@q=1]=2; while($i=pop@q){ $t=0; $t+=$i>>$_&1for 0..13; if($i-$t>=1){ if($d[$i]+1<($d[$i-$t]||9e9)){ $d[$i-$t]=$d[$i]+1; push@q,$i-$t } } if($i+$t<=$N){ if($d[$i]+1<($d[$i+$t]||9e9)){ $d[$i+$t]=$d[$i]+1; push@q,$i+$t } } } print$d[$N]-1