#G00010. Điều tra đường bay (Investigation)

Điều tra đường bay (Investigation)

Điều tra đường bay (Investigation)

Nguồn: CSES Problem Set

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

Đề bài

Có nn thành phố và mm chuyến bay một chiều. Chuyến bay từ aa đến bb có giá c>0c>0.

Bạn cần đi từ thành phố 11 đến thành phố nn. Hãy xác định đồng thời:

  1. chi phí nhỏ nhất của một tuyến;
  2. số tuyến có chi phí nhỏ nhất, lấy modulo 109+710^9+7;
  3. số chuyến bay ít nhất trong một tuyến có chi phí nhỏ nhất;
  4. số chuyến bay nhiều nhất trong một tuyến có chi phí nhỏ nhất.

Đề bảo đảm tồn tại ít nhất một tuyến từ thành phố 11 đến thành phố nn.

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 a,b,ca,b,c, mô tả một chuyến bay một chiều từ aa đến bb có giá cc.

Output

In bốn số theo thứ tự: chi phí nhỏ nhất, số tuyến có chi phí nhỏ nhất modulo 109+710^9+7, số chuyến bay ít nhất và số chuyến bay nhiều nhất trong các tuyến tối ưu.

Subtask

Trong tất cả các Subtask: 1≤a,b≤n1\le a,b\le n; 1≤c≤1091\le c\le10^9; luôn tồn tại đường đi từ 11 đến nn.

  • Subtask 1 — 20% — 0.30 giây: 1≤n≤1001\le n\le100; 1≤m≤5001\le m\le500.
  • Subtask 2 — 30% — 0.60 giây: 1≤n≤50001\le n\le5000; 1≤m≤1041\le m\le10^4.
  • Subtask 3 — 50% — 1.00 giây: 1≤n≤1051\le n\le10^5; 1≤m≤2⋅1051\le m\le2\cdot10^5.

Ví dụ

Input

4 5
1 4 5
1 2 4
2 4 5
1 3 2
3 4 3

Output

5 2 1 2

Giải thích

Chi phí nhỏ nhất là 55. Có hai đường đạt chi phí này: cạnh trực tiếp 1→41\to4 và đường 1→3→41\to3\to4. Vì vậy số đường là 22, số chuyến ít nhất là 11 và nhiều nhất là 22.