Coco 决定和 Hanbyul 一起去某个海滩玩,他提前来到海滩准备了一个寻宝游戏。首先,他在沙滩上画了一个 $10 \times 10$ 大小的网格,然后在 $100$ 个格子中,选择水平或垂直相邻的两个格子,埋下了一个 $2 \times 1$ 大小的宝箱。
准备好寻宝游戏后,Coco 向 Hanbyul 提出了这样一个建议:“如果你最多只挖 $50$ 个格子,就能准确找出宝箱的位置,我就把宝箱里的巧克力全部给你。你不需要把有宝箱的两个格子都挖开,只要猜对这两个格子的坐标即可。”Hanbyul 究竟能否得到宝箱里的巧克力呢?
交互
你可以通过在单行中输出以下内容来向交互器进行询问:
? r c:挖掘第r行第c列。行号和列号从 $0$ 开始,因此合法的取值范围为 $0 \le r, c \le 9$。如果超出此范围,你将获得“答案错误(Wrong Answer)”。
每个询问的结果可以通过读取一个字符来获取。可能的结果如下:
1:第r行第c列有宝箱的一部分。0:第r行第c列没有宝箱。
输出询问后,必须刷新(flush)标准输出缓冲区。如果询问次数超过 $50$ 次,你将获得“答案错误(Wrong Answer)”。
当你确定了宝箱的位置后,应按以下格式输出,刷新缓冲区并结束程序:
! r1 c1 r2 c2:宝箱位于第r1行第c1列和第r2行第c2列。坐标的顺序无关紧要。
交互器可能是自适应的(adaptive)。
样例
输入 1
0 0 0 1