建筑工矮人最近转行成了栅栏建造师。他所有的新任务都归结为一件事:建造符合特定审美要求的栅栏。听起来很简单……
建造师最近的任务是在街道的两侧各建造一个栅栏。栅栏由两种类型的木桩组成:黑色和红色。这一次,审美要求很简单:两个栅栏必须完全相同。
然而,正如建筑工地上常有的情况,出现了一些问题。栅栏的木桩会一个接一个地到达工地,其顺序建造师预先已知。对于每一个木桩,建造师必须立即做出两个决定之一:将其安装在其中一个栅栏的(右)端,或者如果它不符合计划,则将其丢弃。
建造师知道木桩是完全随机装载到卡车上的:每一个木桩是黑色或红色的概率相等。他知道木桩到达工地的顺序,但现在他面临另一个挑战。施工经理允许他拒绝一些木桩,但这个数量不能超过所有交付木桩总数的 16%。
看来建造师面临着一项艰巨的任务。你能帮帮他吗?
输入格式
输入的第一行包含一个整数 $N$,表示将到达工地的木桩数量。
第二行包含一个长度为 $N$ 的字符串,由字符 0 和 1 组成,分别代表将到达工地的木桩颜色(红色和黑色)。
输出格式
第一行输出应包含一个整数 $K$,表示组成每个栅栏的木桩数量。
第二行应包含组成第一个栅栏的木桩的后续索引。
第三行应包含组成第二个栅栏的木桩的后续索引。
每个栅栏的描述应使用 0-索引编号,并按升序排列。
在每个测试中,丢弃的木桩数量不得超过 16%。
数据范围
在所有测试中,$N = 100\,000$,且木桩的颜色是独立随机选择的。
样例
输入 1
13 0110101001011
输出 1
6 5 6 8 9 10 12 0 2 3 4 7 11
说明
注意:上述示例不满足 $N = 100\,000$ 的条件,因此你不必通过该示例。评测系统中的样例满足所有题目条件。