平面上的一组网格点(坐标均为整数的点)被称为“模式”,此外还给出了其他几组网格点。我们希望确定哪些集合与该模式相似,即哪些集合可以通过旋转、平移、反射和缩放变换后与模式完全重合。例如:点集 $\{(0,0),(2,0),(2,1)\}$ 与点集 $\{(6,1),(6,5),(4,5)\}$ 相似,但与点集 $\{(4,0),(6,0),(5,-1)\}$ 不相似。
编写一个程序:
- 从标准输入读取模式的描述以及待考察的点集族。
- 确定哪些待考察的点集与模式相似。
- 将结果写入标准输出。
输入格式
标准输入的第一行包含一个整数 $k$ ($1 \le k \le 25\,000$),表示模式包含的点数。接下来的 $k$ 行每行包含一对由空格分隔的整数,第 $(i+1)$ 行包含模式中第 $i$ 个点的坐标 $x_i$ 和 $y_i$ ($-20,000 \le x_i,y_i \le 20,000$)。模式中的点互不相同。下一行包含待考察的集合数量 $n$ ($1 \le n \le 20$)。随后是这 $n$ 个集合的描述。每个集合的描述以一行开始,包含一个整数 $l$,表示该集合包含的点数 ($1 \le l \le 25\,000$)。接下来的 $l$ 行每行描述一个点,包含两个由空格分隔的整数,即点的坐标 $x$ 和 $y$ ($-20,000 \le x,y \le 20,000$)。同一集合中的点互不相同。
输出格式
程序应向标准输出写入 $n$ 行,每行对应一个待考察的点集。如果第 $i$ 个给定的点集与模式相似,则第 $i$ 行应输出 TAK(波兰语中的“是”),否则输出 NIE(波兰语中的“否”)。
样例
输入 1
3 0 0 2 0 2 1 2 3 4 1 6 5 4 5 3 4 0 6 0 5 -1
输出 1
TAK NIE