Có đỉnh được đánh số từ đến và cạnh có hướng. Khi đi qua một cạnh, bạn nhận thêm số điểm ghi trên cạnh đó; số điểm này có thể âm, bằng hoặc dương.
Bạn bắt đầu tại đỉnh với điểm và cần kết thúc tại đỉnh . Một cạnh có thể được đi qua nhiều lần, vì vậy hành trình được phép lặp lại đỉnh và cạnh. Dữ liệu bảo đảm luôn có ít nhất một hành trình từ tới .
Hãy tìm số điểm lớn nhất có thể đạt được khi tới . Nếu có thể làm tổng điểm tăng lớn tùy ý rồi vẫn đi tiếp tới , hãy in .
Khi , hành trình rỗng với điểm là hợp lệ. Tuy nhiên, nếu từ đỉnh có thể đi qua một chu trình làm tăng điểm và quay về một vị trí còn tới được đỉnh , đáp án vẫn là không bị chặn.
Input
- Dòng đầu chứa hai số nguyên và .
- Mỗi trong dòng tiếp theo chứa ba số nguyên , biểu thị một cạnh có hướng từ tới ; đi qua cạnh đó làm tổng điểm thay đổi thêm .
Output
- Nếu tổng điểm có thể tăng không giới hạn, in .
- Ngược lại, in tổng điểm lớn nhất hữu hạn của một hành trình từ tới . Giá trị hữu hạn này có thể là số âm.
Constraints
- .
- .
- .
- .
- Cạnh tự khuyên và nhiều cạnh có cùng hai đầu mút đều được phép.
- Luôn có đường đi có hướng từ tới .
Scoring
- Subtask ( số điểm): .
- Subtask ( số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
4 5 1 2 4 2 4 -1 1 3 -2 3 4 8 2 3 1
Output
13
Giải thích: Hành trình nhận điểm, lớn hơn các hành trình và . Đồ thị không có chu trình giúp tăng điểm.
Test 2
Input
5 6 1 2 3 2 3 2 3 2 1 3 4 -5 4 5 4 1 5 0
Output
-1
Giải thích: Chu trình làm tổng điểm tăng thêm sau mỗi vòng. Từ chu trình vẫn có thể đi qua , nên số vòng lặp có thể tăng tùy ý và điểm tại đích không bị chặn.