마계안암
면접 대비시간 제한2초메모리 제한1024 MB
각 건물에 대해 건물 1에서 최소 비용으로 도달하는 경로의 수를 구합니다. 비용이 0인 사이클로 경로가 무한히 많아지면 -1을 출력합니다.
문제
태윤이는 연세대학교 과잠을 입고 안암 곳곳을 여행하려고 한다.
안암은 개의 건물과 개의 일방통행 길로 나타낼 수 있다. 각 길은 서로 다른 두 건물을 잇는다. 안암역은 번 건물이고, 태윤이는 현재 안암역에 있다. 각 길에는 0명 이상의 고려대학교 학생이 있다.
태윤이가 길을 지나가려면 그 길에 있는 고려대학교 학생 수만큼 연세빵을 바치고 이동해야 한다. 태윤이는 빵을 최소한으로 빼앗기고 여행하고 싶어 한다. 안암역에서 각 건물까지 빵을 최소한으로 빼앗기고 도착하는 서로 다른 경로의 수를 구하자. 경로는 안암역에서 출발해 건물에 도착할 때까지 지나간 길을 순서대로 나열한 것이다. 같은 길을 여러 번 지나갈 수 있다.
안암역에서 모든 건물에 도착할 수 있음이 보장된다.
입력
첫 줄에 건물의 개수 이 주어진다. 둘째 줄에 길의 개수 이 주어진다. 이어서 줄에 걸쳐 번째 길의 정보 가 주어진다. 이는 번째 길을 통해 번 건물에서 번 건물로 이동할 수 있고, 그 길에 명의 고려대학교 학생이 있다는 뜻이다.
출력
줄에 걸쳐 각 건물에 빵을 최소한으로 빼앗기고 도착하는 서로 다른 경로의 수를 출력한다. 그러한 경로가 무수히 많다면 -1을 출력한다.
경로의 수가 무수히 많지 않은 경우에는 수가 매우 클 수 있으므로 으로 나눈 나머지를 출력한다.