어느 날 태평양 한가운데에서 화산이 폭발했다. 용암이 식은 뒤, 작은 해님 모양의 새로운 섬이 나타났다. 물 위로 솟은 땅은 원(분화구) 모양이었고, 흘러나와 굳은 용암은 원 바깥으로 뻗어 나가는 곧은 광선들을 이루었다.
곧 관광객이 몰려들었고 노점이 세워졌다. 노점은 세 종류의 자리에 놓인다.
섬의 법은 인접한 두 노점이 단 하나의 상품도 공유하지 못하도록 금지한다. 따라서 인접한 노점끼리는 완전히 다른 상품을 팔아야 한다. 각 노점은 장사를 이어 가기 위해 정해진 개수 이상의 서로 다른 상품을 팔아야 한다(다리 위에는 노점을 둘 수 없다).
모든 노점이 필요한 개수 이상의 상품을 배정받으면서도 인접한 두 노점이 어떤 상품도 공유하지 않도록 하려면, 섬에 들여와야 하는 서로 다른 상품의 최소 개수는 얼마인지 구하여라.
첫 줄에 데이터 집합의 수 D (1≤D≤20)가 주어진다. 각 데이터 집합은 다음과 같이 주어진다.
첫 줄에 분화구 둘레의 노점 수 n (3≤n≤10000)이 주어진다. 노점은 시계 방향으로 1번부터 n번까지 번호가 매겨진다.
다음 줄에 다리의 수 m (0≤m≤n−3)이 주어진다. 이어지는 m개의 줄에는 각각 두 정수 pi, ki (1≤pi<ki≤n, pi<ki−1, ki−pi=n−1)가 주어지며, 한 다리의 양 끝에 있는 둘레 노점의 번호를 뜻한다.
다음 줄에 광선의 수 r (0≤r≤n)이 주어진다. 이어지는 r개의 줄에는 각각 두 정수 cj, dj (1≤cj≤n, 0≤dj≤10000)가 주어지며, j번째 광선이 시작되는 둘레 노점의 번호와 그 광선 위에 있는 추가 노점의 수를 뜻한다.
다음 줄에는 n개의 정수가 주어지며, i번째 수는 i번 둘레 노점이 팔아야 하는 서로 다른 상품의 개수이다.
마지막으로 r개의 줄이 주어진다. j번째 줄에는 dj개의 정수가 있으며, j번째 광선 위 노점들이 팔아야 하는 상품 개수를 분화구에 가까운 노점부터 먼 노점 순서로 나열한 것이다.
노점은 모두 합쳐 100000개를 넘지 않으며, 어떤 노점도 100개를 넘는 상품을 요구하지 않는다.
각 데이터 집합마다 한 줄에, 모든 노점이 필요한 개수 이상의 상품을 받고 인접한(또는 다리로 연결된) 두 노점이 어떤 상품도 공유하지 않도록 섬에 들여와야 하는 서로 다른 상품의 최소 개수 t를 출력한다.

그림 1. 예제에서 설명하는 섬의 지도.