누가 크리스마스 소리를 내었는가

1번 소켓을 루트로 삼아 R, G, B 전구의 인접 규칙을 지키면서 전체 비용이 K의 배수가 되는 배치의 수를 센다.

어려움8동적 계획법트리DFS조합론아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

크리스마스가 얼마 남지 않아 셈터는 트리를 장식하기로 했다. 트리에는 전구를 끼울 소켓이 VV개 달려 있고, 소켓끼리는 전선 V1V-1개로 이어져 있다. 1번 소켓에서 전선을 따라가면 모든 소켓에 전기가 닿는다. 즉 소켓과 전선은 트리 구조를 이룬다.

각 소켓에는 빨강(RR), 초록(GG), 파랑(BB) 중 한 가지 색의 전구를 하나씩 끼운다. ii번 소켓에 빨강 전구를 끼우면 RiR_i, 초록 전구를 끼우면 GiG_i, 파랑 전구를 끼우면 BiB_i의 비용이 든다. 배치는 다음 두 조건을 지켜야 한다.

  • 초록 전구가 달린 소켓 두 개는 전선으로 직접 이어지지 않는다.
  • 파랑 전구가 달린 소켓에 직접 이어진 소켓에는 모두 초록 전구가 달려 있다.

모든 소켓의 비용을 더한 값이 KK의 배수가 되는 배치가 몇 가지인지 세어라. 답이 매우 커질 수 있으므로 QQ로 나눈 나머지를 출력한다. 소켓 하나라도 전구 색이 다르면 서로 다른 배치로 센다.

1V10001 \le V \le 1000, 1Q10001 \le Q \le 1000, 1K101 \le K \le 10, 0Ri,Gi,Bi100 \le R_i, G_i, B_i \le 10이다.

입력

첫째 줄에 VV, QQ, KK가 공백으로 구분되어 주어진다.

다음 V1V-1개의 줄에는 전선으로 이어진 소켓 번호 aabb가 공백으로 구분되어 주어진다.

그다음 VV개의 줄에는 ii번 소켓의 비용 RiR_i, GiG_i, BiB_i가 순서대로 주어진다. 소켓 번호는 1번부터 VV번까지다.

출력

전체 비용이 KK로 나누어떨어지는 배치의 수를 QQ로 나눈 나머지를 한 줄에 출력한다.