마이크로칩

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

Byteland-Electronics가 만드는 마이크로칩은 위에 트랜지스터가 올라간 반도체 판이다. 일부 트랜지스터 쌍의 끝은 마이크로 배선으로 연결되어 있다. 각 마이크로 배선은 한 방향으로만 전기를 흘려보내며, 임피던스(저항을 일반화한 값)를 하나씩 가진다. 마이크로칩의 품질은 그 안에서 임피던스의 곱이 정확히 II가 되는 서로 다른 경로의 개수로 정의한다.

여기서 경로란 한 트랜지스터에서 다른 트랜지스터(도착지가 출발지와 같아도 된다)까지, 마이크로 배선을 전기가 흐르는 방향으로만 따라가며 이동하는 모든 방법을 뜻한다. 경로는 마이크로 배선을 적어도 하나 사용하며, 같은 트랜지스터나 배선을 여러 번 지나가도 된다. 경로의 임피던스는 그 경로에 포함된 모든 마이크로 배선의 임피던스를 곱한 값이다.

마이크로칩의 정보와 두 수 II, kk를 읽어, 임피던스가 정확히 II인 경로의 개수를 kk로 나눈 나머지를 출력하는 프로그램을 작성하라.

입력

첫째 줄에 네 정수 nn, mm, II, kk가 공백으로 구분되어 주어진다 (2n502 \le n \le 50, 1mn(n1)1 \le m \le n(n-1), 1I21091 \le I \le 2\cdot10^9, 2k1092 \le k \le 10^9). nn은 트랜지스터의 수, mm은 마이크로 배선의 수, II는 찾고자 하는 경로의 임피던스, kk는 나눗셈에 사용할 수이다. 이어지는 mm개의 줄에는 각각 세 정수 aja_j, bjb_j, iji_j가 주어진다 (1aj,bjn1 \le a_j, b_j \le n, ajbja_j \ne b_j, 1ij21091 \le i_j \le 2\cdot10^9). 이는 트랜지스터 aja_j에서 bjb_j로 전기를 흘려보내는 임피던스 iji_j짜리 마이크로 배선을 뜻한다. 어떤 순서쌍 (aj,bj)(a_j, b_j)도 두 번 이상 나타나지 않는다.

출력

한 줄을 출력한다. 임피던스가 II인 경로의 개수가 무한하면 NIESKONCZONOSC(폴란드어로 무한대)를 출력하고, 그렇지 않으면 그 개수를 kk로 나눈 나머지를 출력한다.