Erik 和他的爷爷经常去森林里采摘蓝莓。爷爷总是能找到最多的浆果,虽然这并不是一场比赛,但 Erik 已经受够了。他观察到爷爷使用一种简单的贪心策略来尽可能多地采摘浆果。有了这些信息,Erik 想要尝试最终采摘到至少和爷爷一样多的浆果。
蓝莓灌木丛可以用一个长度为 $N = 10^5$ 的字符串 $s = s_1s_2 \dots s_N$ 来表示,由字符 . 和 b 组成。如果 $s_i = \text{'b'}$,则表示位置 $i$ 处有一颗浆果,否则该处没有浆果。初始时恰好有 $N/2$ 颗浆果,且它们是均匀随机分布的。
采摘浆果的过程轮流进行。在一次移动中,一个人可以选择一个位置 $i$ ($1 \le i \le N - 3$),并采摘位置 $i, i+1, i+2$ 和 $i+3$ 处的所有浆果。爷爷先手,然后 Erik 移动,以此类推。爷爷总是贪心地选择能采摘到最多浆果的移动方式。在所有这样的移动中,他会均匀随机地选择一个。
给定字符串 $s$,你的任务是编写一个程序,决定 Erik 应该采取什么移动,以便采摘到至少和爷爷一样多的浆果。
图片由 MAKY.OREL 提供,公有领域
交互
输入的第一行包含数字 $N$,即字符串 $s$ 的长度。除了样例之外,该数字始终等于 $10^5$。你的程序不需要解决样例即可通过。
第二行包含长度为 $N$ 的字符串 $s$。该字符串恰好包含 $N/2$ 个字符 b,且它们的位置是均匀随机生成的。
然后,你的程序应开始与交互器进行交互。当轮到爷爷时,你应该读取一个整数 $i$ ($1 \le i \le N - 3$),这意味着爷爷采摘了位置 $i, i+1, i+2$ 和 $i+3$ 处的浆果。当轮到你时,你应该输出一个数字 $i$,这意味着你采摘了位置 $i, i+1, i+2$ 和 $i+3$ 处的浆果。
如果轮到你时已经没有浆果了,你的程序应该终止,不再输出任何内容。如果轮到爷爷时已经没有浆果了,交互器将不再进行任何移动,你的程序也应该终止,不再输出任何内容。
如果你采摘的浆果数量至少和爷爷一样多,你就通过了该测试用例。
每一轮,爷爷都会贪心地选择能采摘到最多浆果的移动方式,并在所有此类移动中均匀随机地选择一个。
字符串 $s$ 是预先生成的,因此在不同的提交中它们是相同的。然而,爷爷的行为在每次提交时都是随机的,所以如果你提交相同的代码两次,可能会得到不同的结果。
总共有 100 个测试用例。保证存在一个以极高概率通过这些测试用例的解法。
样例
在样例中,Erik 和爷爷各得到了 5 颗浆果,这意味着 Erik 实现了他的目标。在游戏开始时,一次移动中可能采摘到的最大浆果数为 3。有 4 种可能的 $i$ 选择可以获得 3 颗浆果:1, 2, 3 和 6。爷爷从中均匀随机选择了一个,结果是 $i = 2$。之后,Erik 选择了 $i = 6$,这也让他获得了 3 颗浆果。在最后两轮中,爷爷和 Erik 都各采摘了两颗浆果。
输入 1
20 .bbb.b.bb...b.b...bb
输出 1
6 17
说明 1
在交互过程中,程序读取爷爷的移动,然后输出自己的移动。上述样例交互中,程序读取了 2,输出了 6,然后读取了 13,最后输出了 17。