일부 정점의 색이 미리 정해진 트리에서 인접한 두 정점이 다른 색이 되도록 3가지 색으로 칠하는 경우의 수를 10^9+7로 나눈 나머지를 구한다.
농부 존의 농장에는 헛간이 NNN개 있다 (1≤N≤1051 \le N \le 10^51≤N≤105). 그중 일부는 이미 칠해져 있고 나머지는 아직 칠하지 않았다. 존은 남은 헛간을 모두 칠해서 농장의 헛간이 전부 색을 갖게 하려고 하는데, 쓸 수 있는 페인트는 세 가지 색뿐이다. 게다가 존이 아끼는 소 베시는 통로로 바로 이어진 두 헛간의 색이 같으면 헷갈려 하므로, 그런 상황이 생기지 않게 해야 한다.
NNN개의 헛간을 잇는 통로에는 사이클이 없다. 즉 어떤 두 헛간을 잡아도 한쪽에서 다른 쪽으로 가는 통로의 순서는 많아야 한 가지다.
아직 칠하지 않은 헛간을 칠하는 방법은 몇 가지인가?
첫째 줄에 헛간의 수 NNN과 이미 칠해진 헛간의 수 KKK가 주어진다 (0≤K≤N0 \le K \le N0≤K≤N).
다음 N−1N-1N−1개 줄에는 헛간 xxx와 헛간 yyy를 바로 잇는 통로를 나타내는 두 정수 xxx, yyy가 주어진다 (1≤x,y≤N1 \le x, y \le N1≤x,y≤N, x≠yx \neq yx=y).
다음 KKK개 줄에는 헛간 bbb가 색 ccc로 칠해져 있다는 뜻의 두 정수 bbb, ccc가 주어진다 (1≤b≤N1 \le b \le N1≤b≤N, 1≤c≤31 \le c \le 31≤c≤3). 같은 헛간 번호는 두 번 이상 나오지 않는다.
바로 이어진 두 헛간의 색이 서로 다르도록 남은 헛간을 칠하는 방법의 수를 109+710^9 + 7109+7로 나눈 나머지를 출력한다.