비행 안전

시간 제한1초메모리 제한128 MB

문제

비행 경로를 계획할 때 안전은 매우 중요합니다. 무엇보다도 사고가 일어나지 않도록 가능한 모든 조치를 취해야 하지만, 그럼에도 늘 최악의 상황에 대비하여 사고가 발생하더라도 사람들의 생존 확률을 최대한 높이는 것이 중요합니다.

바다 위에서 비상 착륙을 해야 할 때, 가장 가까운 육지까지의 거리는 생존을 좌우하는 결정적인 요소입니다. 일반적으로 넓은 바다의 한가운데로 나갈수록 생존 확률은 낮아집니다. 따라서 비행 경로의 어느 지점에서든 가장 가까운 육지로부터 얼마나 멀어지는지가 중요한 안전 지표가 됩니다. 주어진 비행 경로에 대해 이 최대 거리를 구하는 프로그램을 작성하세요.

문제를 단순화하기 위해 세계를 구가 아닌 2차원 평면으로 모델링합니다. 대륙은 다각형으로, 비행 경로는 직선 구간으로 연결된 주요 지점들의 수열로 나타냅니다. 비행 경로는 항상 어떤 대륙의 내부에서 시작하여 내부에서 끝나지만, 중간의 주요 지점은 바다 위에 있을 수 있습니다. 대륙은 자기 자신과 교차하지 않으며 서로 접하지도 않습니다.

그림은 두 번째 예제 케이스를 나타내며, 육지로부터 가장 먼 지점이 사각형으로 표시되어 있습니다.

입력

첫 번째 줄에는 테스트 케이스의 수를 나타내는 양의 정수가 주어지며, 최대 100입니다. 그 다음 각 테스트 케이스마다 다음이 주어집니다.

  • 두 정수 $C$ ($1 \le C \le 20$)와 $N$ ($2 \le N \le 20$)이 담긴 한 줄. $C$는 대륙의 수, $N$은 비행 경로의 주요 지점 수입니다.
  • 주요 지점의 좌표를 첫 번째부터 마지막 순서로 나타내는 $N$개의 줄. 각 줄에는 두 정수 $X$, $Y$가 담겨 있습니다.
  • $C$개의 대륙에 대한 설명. 각 대륙의 설명은 그 대륙의 꼭짓점 수를 나타내는 정수 $M$ ($3 \le M \le 30$)이 담긴 한 줄로 시작합니다. 그 뒤로 $M$개의 줄이 이어지며, 각 줄에는 꼭짓점의 좌표를 나타내는 두 정수 $X$, $Y$가 시계 방향 또는 반시계 방향 순서로 주어집니다.

입력의 모든 좌표는 $-10,000$ 이상 $10,000$ 이하입니다.

출력

각 테스트 케이스마다 한 줄에, 비행 경로가 육지로부터 최대로 멀어지는 거리를 출력합니다.

이 값은 소수점 아래 정확히 여섯 자리까지 출력합니다 (예: printf("%.6f", answer)).