sub i{<>=~/\d+/g} ($n,$m)=i; @w=(0,i); for(1..$m){ ($i,$j)=i; push@$i,$j; } for$k(1..$n){ @u=();$u[$k]++; @a=[$k,$w[$k]]; while(@a){ ($l,$s)=@{pop@a}; $t=$w[$l]; if($s>=$t){ for$i(1..$t){ use bigint; $r+=(-1)**($t-$i)*(bnok{$t+0}$i)*(bmodpow{$i+0}$s,1e9+7); $r%=1e9+7; } } $s=$t if $s>$t; for(@$l){ if(!$u[$_]++){ push@a,[$_,$s]; } } } } print$r;