这是一个交互式问题。
评测程序拥有一个长度为 $n$ 的字符串 $s$,该字符串由字母 'a'、'b' 和 'c' 组成。你的程序必须猜出这个字符串。
为了猜出该字符串,你的程序可以进行询问。每次询问的形式为一个数字 $i$ ($1 \le i \le n - 1$) 和一个长度为 2 的小写英文字母字符串 $u$。对于每次询问,评测程序会返回 $s_i = u_1$ 和 $s_{i+1} = u_2$ 这两个陈述中有多少个是正确的。
你需要猜出目标字符串,且询问次数不得超过 $\lceil \frac{4}{3}n \rceil$ 次。这里 $\lceil \dots \rceil$ 表示向上取整。
交互
在本题中,你需要与评测程序进行多次交互。保证每组测试数据中的游戏局数不超过 100 局。
在每局游戏开始时,你的程序应从标准输入读取数字 $n$ ($2 \le n \le 100$)。如果 $n = 0$,这意味着你的程序应终止执行。否则,你将开始进行一局目标字符串长度为 $n$ 的游戏,且你的程序最多可以进行 $\lceil \frac{4}{3}n \rceil$ 次询问。
进行询问时,你需要向标准输出打印 ? i u,其中 $1 \le i \le n - 1$,$u$ 是一个长度为 2 的小写英文字母字符串。作为响应,你需要从标准输入读取一个整数 $a$($0, 1$ 或 $2$),表示 $s_i = u_1$ 和 $s_{i+1} = u_2$ 这两个陈述中有多少个是正确的。
当你的程序猜出目标字符串后,必须向标准输出打印 ! s,其中 $s$ 是评测程序所设想的长度为 $n$ 的字符串。打印答案不计入询问次数。在你的程序打印出猜出的字符串后,可以立即开始下一局游戏。
本题中的评测程序可能是自适应的。换句话说,评测程序可以调整其响应,使得存在一个字符串满足所有响应,但该字符串并非预先固定,而是根据你的询问而改变。特别地,如果存在一个字符串满足所有询问响应,但与你猜出的字符串不同,你的程序可能会收到 "Wrong answer" 的判决。
样例
输入 1
3 2 1 1 2 0
输出 1
? 1 ab ? 2 ba ? 2 bb ? 2 bc ! abc
说明
在交互示例中,询问和响应之间用空行隔开,以直观地展示交互过程。在与评测程序的实际交互中,不会有空行,也不应打印空行,但在每次询问后以及打印答案后,必须打印换行符。