Gauntlet of Fire

Spike is competing in the Gauntlet of Fire for the title of Dragon Lord. To succeed, he needs to traverse the labyrinthine volcanic tunnels, avoiding the treacherous elements and making it from chamber to chamber as quickly as possible.

The cave has $N$
chambers and $M$ tunnels
connecting these chambers; no tunnel connects a chamber to
itself, and there is at most one tunnel between any two
chambers. This cave has a special property: it is known that it
is possible to travel between any two different chambers by
taking one or more tunnels, and that there are at most
*two* paths between any two different
chambers that do not take any tunnel more than once.

For simplicity, we label the chambers $1, 2, \dots , N$; then, the $i^\text {th}$ tunnel connects chambers $A_ i$ and $B_ i$, and has a length of $L_ i$ meters.

Spike can travel at the fast, fast speed of $1$ meter per second. He wants to know
the *danger* level of each chamber. The
danger level of a chamber is simply the sum of the times, in
seconds, required to travel from this chamber to every other
chamber, assuming that one always takes the shortest path
possible.

Help Spike determine the danger level of each chamber!

Since these numbers can be quite large, you should output only the remainders after dividing each number by $10^9+7$.

The first line of input contains two integers, $N$ ($2 \leq N \leq 200\, 000$) and $M$ ($N-1 \leq M \leq 400\, 000$) the number of chambers and tunnels in the cave.

The next $M$ lines contain the descriptions of the tunnels. In particular, the $i^\text {th}$ of these lines contains three integers $A_ i$, $B_ i$ ($1\leq A_ i, B_ i \leq N$; $A_ i \neq B_ i$) and $L_ i$ ($1 \leq L_ i \leq 10^9$), denoting that the $i^\text {th}$ tunnel connects chambers $A_ i$ and $B_ i$, and has a length of $L_ i$ meters.

It is guaranteed that there is at most one tunnel between any two chambers, that it is possible to travel between any two different chambers by taking one or more tunnels, and that there are at most two paths between any two chambers that do not take any tunnel more than once.

Output $N$ integers on a single line, separated by spaces. The $i^\text {th}$ of these integers should contain the danger level of chamber $i$.

Since these numbers can be quite large, you should output only the remainders after dividing each number by $10^9+7$.

Sample Input 1 | Sample Output 1 |
---|---|

5 5 1 2 3 1 4 8 2 3 12 3 5 4 4 5 2 |
35 39 36 27 29 |

Sample Input 2 | Sample Output 2 |
---|---|

7 6 1 2 8 1 3 15 1 4 10 3 5 40 3 6 3 5 7 60 |
221 261 206 271 326 221 626 |