#CT00008. Mạng dự phòng (Backup Network)

Mạng dự phòng (Backup Network)

Mạng dự phòng (Backup Network)

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

Đề bài

Một mạng máy tính gồm NN nút và MM đường truyền hai chiều.

Đường truyền thứ ii nối hai nút uiu_i và viv_i, có độ trễ wiw_i.

Cần truyền một gói tin từ nút 11 đến nút NN.

Trong toàn bộ hành trình, hệ thống dự phòng được phép kích hoạt nhiều nhất một lần trên đúng một đường truyền mà gói tin đi qua. Khi hệ thống dự phòng được kích hoạt trên đường truyền đó, độ trễ của lần đi qua đường truyền này được tính bằng 00.

Hãy tìm tổng độ trễ nhỏ nhất có thể để truyền gói tin từ nút 11 đến nút NN.

Input

Dòng đầu tiên chứa hai số nguyên dương NN và MM, lần lượt là số nút và số đường truyền.

MM dòng tiếp theo, dòng thứ ii chứa ba số nguyên uiu_i, viv_i, wiw_i, mô tả một đường truyền hai chiều nối hai nút uiu_i và viv_i với độ trễ wiw_i.

Có thể tồn tại nhiều đường truyền nối cùng một cặp nút. Không có đường truyền nối một nút với chính nó.

Output

In ra một số nguyên duy nhất DD:

  • nếu tồn tại đường đi từ nút 11 đến nút NN, DD là tổng độ trễ nhỏ nhất có thể đạt được khi hệ thống dự phòng được sử dụng nhiều nhất một lần;
  • nếu không tồn tại đường đi từ nút 11 đến nút NN, in ra -1.

Subtask

Trong tất cả các Subtask:

2≤N≤2⋅1052\le N\le2\cdot10^5; 1≤M≤3⋅1051\le M\le3\cdot10^5; 1≤ui,vi≤N1\le u_i,v_i\le N; ui≠viu_i\ne v_i; 1≤wi≤1091\le w_i\le10^9.

  • Subtask 1 — 0,8 điểm: N≤200N\le200; M≤2000M\le2000.
  • Subtask 2 — 0,8 điểm: Đồ thị là một cây.
  • Subtask 3 — 1,4 điểm: Không có ràng buộc bổ sung.

Ví dụ

Input

5 6
1 2 8
2 5 8
1 3 3
3 4 3
4 5 10
2 4 2

Output

6

Giải thích

Có thể chọn đường đi:

1→3→4→5.1\rightarrow3\rightarrow4\rightarrow5.

Độ trễ của ba đường truyền lần lượt là 33, 33 và 1010.

Nếu kích hoạt hệ thống dự phòng khi đi qua đường truyền nối 44 và 55, độ trễ của đường truyền này được tính bằng 00.

Tổng độ trễ khi đó là:

3+3+0=6.3+3+0=6.

Không thể đạt được tổng độ trễ nhỏ hơn, nên đáp án là 66.