하시고 사마
시간 제한8초메모리 제한256 MB
이어 붙인 사다리 그래프를 흑백으로 칠할 때 단색 연결 영역 크기가 k 이하인 경우의 수를 셉니다.
문제
첼시는 현대 미술가다. 다음 작품은 사다리로 만들기로 했다. 사다리 몇 개를 이어 붙인 다음, 그 위에 무늬를 칠할 생각이다.
사다리 하나를 hashigo라고 부르는 그래프로 나타낸다. hashigo는 0번부터 번까지 개가 있다. 길이가 인 hashigo 는 정점 총 개로 이루어지고, 간선은 다음 두 종류다.
- 인 모든 에 대해
- 인 모든 에 대해
짝수 번호 정점은 순서로 이어져 기둥 하나를 이루고, 홀수 번호 정점은 순서로 이어져 나머지 기둥 하나를 이룬다. 두 기둥은 가로대 개로 이어지며, 양 끝의 , , , 에는 가로대가 붙지 않는다.
hashigo 와 hashigo 를 위치 (), 위치 ()에서 붙이는 연산은 다음 네 쌍을 각각 한 정점으로 합치는 것이다.
첼시는 이 연산을 번 해서 hashigo 개를 하나로 잇는다. 연산을 모두 마친 그래프는 연결 그래프이고, 모든 정점의 차수가 4 이하다.
이제 각 정점을 검은색이나 흰색으로 칠하는데, 지켜야 할 조건이 하나 있다.
- 같은 색으로 칠한 정점끼리 이어져 생기는 연결 요소 중 가장 큰 것의 크기가 이하다.
첼시는 가능한 무늬를 모두 살펴보고 가장 마음에 드는 것을 고르고 싶지만, 경우의 수가 아주 많다. 조건을 만족하는 칠하기가 몇 가지인지 세어라.
입력
입력은 데이터 세트 여러 개로 이루어지고, 각 데이터 세트의 형식은 다음과 같다.
n k
l0 l1 ... ln-1
f0 p0 t0 q0
...
fn-2 pn-2 tn-2 qn-2
첫째 줄에 정수 ()과 ()가 주어진다.
둘째 줄에 hashigo 의 길이 ()가 개 주어진다.
이어지는 개 줄에는 정수 네 개 (), (), (), ()가 주어진다. hashigo 와 hashigo 를 각각 위치 와 위치 에서 붙인다는 뜻이다. hashigo 개를 모두 붙여 만든 그래프는 연결 그래프이고 모든 정점의 차수가 4 이하라고 가정해도 된다.
마지막 데이터 세트 다음 줄에는 0 두 개가 주어진다.
출력
데이터 세트마다 서로 다른 칠하기의 수를 1,000,000,007로 나눈 나머지를 한 줄에 출력한다.