#G00007. Mua vé hòa nhạc (Buy a Ticket)

Mua vé hòa nhạc (Buy a Ticket)

Mua vé hòa nhạc (Buy a Ticket)

Nguồn: Codeforces

Phiên bản: Phước Hưng OJ Extended

Đề bài

Có nn thành phố và mm tuyến tàu hai chiều. Tuyến thứ ii nối viv_i với uiu_i và tốn wiw_i xu cho mỗi lần đi qua.

Ban nhạc biểu diễn tại mọi thành phố. Giá vé xem hòa nhạc tại thành phố ii là aia_i xu.

Với một người đang sống ở thành phố ii, người đó có thể:

  • ở lại thành phố ii và mua vé tại đó; hoặc
  • đi đến một thành phố jj, mua vé tại jj, rồi quay trở lại thành phố ii.

Hãy tính chi phí nhỏ nhất cho người ở mỗi thành phố.

Input

Dòng đầu chứa hai số nguyên n,mn,m.

Trong mm dòng tiếp theo, mỗi dòng chứa vi,ui,wiv_i,u_i,w_i, mô tả một tuyến tàu hai chiều.

Dòng cuối chứa nn số nguyên a1,a2,…,ana_1,a_2,\ldots,a_n.

Không có hai tuyến tàu nối cùng một cặp thành phố.

Output

In nn số nguyên. Số thứ ii là tổng chi phí nhỏ nhất mà một người bắt đầu ở thành phố ii phải trả để đi xem hòa nhạc và quay về thành phố ii nếu đã rời thành phố.

Subtask

Trong tất cả các Subtask: 1≤vi,ui≤n1\le v_i,u_i\le n; vi≠uiv_i\ne u_i; 1≤wi,ai≤10121\le w_i,a_i\le10^{12}; không có hai tuyến tàu nối cùng một cặp thành phố.

  • Subtask 1 — 20% — 0.50 giây: 2≤n≤1002\le n\le100; 1≤m≤5001\le m\le500.
  • Subtask 2 — 30% — 1.00 giây: 2≤n≤50002\le n\le5000; 1≤m≤1041\le m\le10^4.
  • Subtask 3 — 50% — 2.00 giây: 2≤n≤2⋅1052\le n\le2\cdot10^5; 1≤m≤2⋅1051\le m\le2\cdot10^5.

Ví dụ

Input

4 2
1 2 4
2 3 7
6 20 1 25

Output

6 14 1 25

Giải thích

Ở thành phố 11, mua vé ngay hết 66 nên không cần đi đâu. Ở thành phố 22, phương án tốt hơn là đi tới thành phố 33, mua vé giá 11 rồi quay lại; tổng chi phí là 7+1+7=157+1+7=15, nhưng đi tới thành phố 11 rồi mua vé có chi phí 4+6+4=144+6+4=14, nên đáp án là 1414. Thành phố 33 mua vé tại chỗ với giá 11.