($N,@M)=<>; @q=0; while(@q){ $q=shift@q; for(0..$#M){ if(not$q&1<<$_){ if(defined$p[$Q=$q|1<<$_]){ $p[$Q]-=$-=$p[$Q]-($p[$q]+($-=$M[$_]-$m[$q])); }else{ $p[$Q]=$p[$q]+($-=$M[$_]-$m[$q]); $m[$Q]=($m[$q]+$M[$_])%1000; push@q,$Q; } } } } print$p[(1<<$N)-1]