在自然保护区中生活着 $q$ 只老虎。为了追踪老虎在保护区内的位置,我们使用带有无线电发射器的项圈。每只老虎的项圈都有一个发射唯一信号的无线电发射器。探测系统被设置为依次接收从第 $i$ 只老虎($i$ 从 $1$ 到 $q$)发出的无线电信号。
为了接收信号,保护区内安装了 $n$ 个接收器,坐标分别为 $(x_1, y_1), \dots, (x_n, y_n)$。探测系统允许工作人员在一次查询中选择任意 $m$ ($3 \le m \le n$) 个接收器。所选的接收器必须构成一个凸多边形的顶点。系统会判断第 $i$ 只老虎的无线电发射器是否位于该多边形内部。
保护区工作人员需要定位每只老虎的位置。如果能够确定一组作为凸多边形顶点的接收器,使得老虎位于该多边形内部,且多边形内部没有其他接收器,则认为第 $i$ 只老虎的位置已被定位。
为了定位每只老虎的位置,工作人员最多被允许进行 $k$ 次查询。
在第 $i$ 只老虎的位置被定位后,系统会自动切换到接收下一只老虎的信号,直到所有 $q$ 只老虎的位置都被定位。
保证没有任何三个接收器共线,也没有任何老虎位于经过两个接收器的直线上。保证至少存在一个以接收器为顶点的凸多边形,其内部包含一只老虎。
你需要编写一个与评测程序交互的程序,以定位每只老虎的位置。
交互协议
这是一道交互题。
首先,输入关于保护区内安装的接收器信息和老虎数量。
输入的第一行包含一个整数 $n$ —— 接收器的数量 ($3 \le n \le 5000$)。接下来的 $n$ 行描述接收器的坐标,其中第 $j$ 行包含两个整数 $x_j$ 和 $y_j$ —— 第 $j$ 个接收器的坐标 ($-10^9 \le x_j, y_j \le 10^9$)。下一行包含一个整数 $q$ —— 老虎的数量 ($1 \le q \le 2000$)。
为了定位老虎的位置,需要向探测系统(由评测程序扮演)执行查询。
对于每个测试点,固定了一个数值 $k$ —— 定位一只老虎位置的最大查询次数。保证 $k$ 次查询足以解决相应数据下的问题。该数值不会告知解题程序,但不同子任务的限制在评分系统中给出。如果解题程序为确定某只老虎的位置进行了超过 $k$ 次查询,则该测试点将获得“答案错误”的结果。
对探测系统的查询以字符 ? 开头,后跟一个整数 $m$ —— 查询中选择的接收器数量 ($3 \le m \le n$),以及 $m$ 个不同的整数 $p_i$ —— 接收器的编号,按顺时针或逆时针顺序排列 ($1 \le p_i \le n$)。
作为响应,程序会收到字符串 Yes(如果老虎位于由编号为 $p_1, \dots, p_m$ 的接收器构成的多边形内部)或字符串 No(否则)。
在老虎的位置被定位后,解题程序必须输出一行,以字符 ! 开头,后跟一个整数 $m$ —— 选择的接收器数量 ($3 \le m \le n$),以及 $m$ 个不同的整数 $p_i$ —— 接收器的编号,按顺时针或逆时针顺序排列 ($1 \le p_i \le n$)。这一行意味着老虎位于由编号为 $p_1, \dots, p_m$ 的接收器构成的凸多边形内部,且内部没有其他接收器。
评测程序不会给出响应,解题程序应立即开始寻找下一只老虎。在定位了第 $q$ 只老虎的位置后,解题程序应终止运行。
老虎在探测系统工作期间不会移动。每组测试中老虎的坐标是固定的,在测试过程中不会改变。
如果存在多个合法的多边形可以定位老虎的位置,输出其中任意一个即可。
上图展示了示例中每只老虎的定位过程。
样例
输入格式 1
6 3 0 0 2 2 4 4 2 5 5 6 1 4 Yes No Yes No No Yes Yes
输出格式 1
? 3 1 2 3 ! 3 1 2 3 ? 3 1 2 3 ? 4 1 2 3 4 ! 3 4 3 1 ? 5 2 3 5 4 1 ? 3 4 5 6 ! 3 1 4 6 ? 4 1 3 5 6 ? 4 4 3 5 6 ! 4 4 3 5 6
说明
上述示例展示了程序与评测程序之间的“逐步”交互过程。在实际测试中,不会输入多余的空行,也不需要输出多余的空行。
子任务
| 子任务 | 分值 | $n$ | $q$ | $k$ | 依赖子任务 | 结果 |
|---|---|---|---|---|---|---|
| 1 | 15 | $3 \le n \le 6$ | $1 \le q \le 50$ | $k = 4000$ | Потестовые | |
| 2 | 17 | $3 \le n \le 20$ | $1 \le q \le 50$ | $k = 4000$ | 1 | Потестовые |
| 3 | 9 | $3 \le n \le 60$ | $1 \le q \le 400$ | $k = 4000$ | 1, 2 | Потестовые |
| 4 | 9 | $3 \le n \le 300$ | $1 \le q \le 1000$ | $k = 600$ | 1–3 | Потестовые |
| 5 | 10 | $3 \le n \le 5000$ | $1 \le q \le 10$ | $k = 10\,000$ | Потестовые | |
| 6 | 10 | $3 \le n \le 300$ | $1 \le q \le 1000$ | $k = 250$ | 1–4 | Потестовые |
| 7 | 10 | $3 \le n \le 1000$ | $1 \le q \le 1000$ | $k = 200$ | 1–4, 6 | Потестовые |
| 8 | 10 | $3 \le n \le 1000$ | $1 \le q \le 2000$ | $k = 60$ | 1–4, 6, 7 | Потестовые |
| 9 | 10 | $3 \le n \le 2500$ | $1 \le q \le 2000$ | $k = 40$ | 1–4, 6–8 | Потестовые |