这是一道交互题。
给定一个正整数 $N$ 和一个长度为 $N$ 的序列 $S = (S_1, S_2, \ldots, S_N)$,其中每个元素都是 $0$ 或 $1$。
有一个包含 $N$ 个顶点的有向二分图 $G$,顶点编号为 $1, 2, \ldots, N$。图 $G$ 的每个顶点都被染色:若 $S_v = 0$,则顶点 $v$ 为白色;若 $S_v = 1$,则为黑色。图 $G$ 中的每条有向边 $(u, v)$ 都同时满足以下两个条件:
- $u < v$。
- 顶点 $u$ 和顶点 $v$ 的颜色不同。
评测机隐藏了图 $G$,不会直接给出关于其边的任何信息。相对地,你可以向评测机发送以下两种类型的查询,总计最多 $15000$ 次查询:
in$u$ $V$:针对一个黑色顶点 $u$ 以及一个由零个或多个白色顶点组成的集合 $V$ 向评测机提问。评测机会回答集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(v, u)$ 存在。out$u$ $V$:针对一个黑色顶点 $u$ 以及一个由零个或多个白色顶点组成的集合 $V$ 向评测机提问。评测机会回答集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(u, v)$ 存在。
请输出图 $G$ 中任意一条最长路。
注意,隐藏的图 $G$ 在交互开始前就已经固定,且不会改变。
交互
首先,从标准输入给定一个整数 $N$($2 \le N \le 500$)。下一行包含 $N$ 个整数 $S_1, S_2, \ldots, S_N$,每个数都是 $0$ 或 $1$,以空格分隔。
$$ \begin{aligned} &N \\ &S_1 \ S_2 \ \ldots \ S_N \end{aligned} $$
读取输入后,你可以按如下方式进行总计最多 $15000$ 次 in 查询和 out 查询。
in 查询
首先,选择一个黑色顶点 $u$ 和一个由零个或多个白色顶点组成的集合 $V$。然后,构造一个长度为 $N$、仅由 $0$ 和 $1$ 组成的字符串 $T = T_1 T_2 \ldots T_N$,使得 $T_v$ 为 $1$ 当且仅当 $v \in V$。请按以下格式向标准输出打印查询:
$$ \text{in} \ u \ T $$
评测机会判断集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(v, u)$ 存在。若存在这样的顶点则令 $r$ 为 $1$,否则为 $0$。数值 $r$ 会按以下格式从标准输入给出:
$$ r $$
out 查询
首先,选择一个黑色顶点 $u$ 和一个由零个或多个白色顶点组成的集合 $V$。然后,构造一个长度为 $N$、仅由 $0$ 和 $1$ 组成的字符串 $T = T_1 T_2 \ldots T_N$,使得 $T_v$ 为 $1$ 当且仅当 $v \in V$。请按以下格式向标准输出打印查询:
$$ \text{out} \ u \ T $$
评测机会判断集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(u, v)$ 存在。若存在这样的顶点则令 $r$ 为 $1$,否则为 $0$。数值 $r$ 会按以下格式从标准输入给出:
$$ r $$
当你确定了一条最长路后,设 $v_1, v_2, \ldots, v_k$ 为按路径上出现顺序排列的顶点编号,并按以下格式向标准输出打印你的答案:
$$ ! \ k \ v_1 \ v_2 \ \ldots \ v_k $$
输出答案后请立即终止你的程序。
交互评测说明
如果你的输出不符合指定格式,或者你的程序在未输出答案的情况下终止,评测结果是未定义的。输出答案后请立即终止你的程序,否则评测结果是未定义的。
每当你输出内容时,请在末尾输出换行符并刷新标准输出。
如果你进行了超过 $15000$ 次查询,评测结果是未定义的。注意,输出答案不计入查询次数。
样例
输入格式 1
5 1 0 0 1 0 1 1 0 1
输出格式 1
out 1 01101 in 4 01100 in 4 01000 out 4 01001 ! 4 1 3 4 5
说明
在本次样例交互中,隐藏图的边集为 $E(G) = \{(1, 2), (1, 3), (1, 5), (3, 4), (4, 5)\}$。这一信息不会提供给程序。