在 Elecuador 这个国家,使用着一种非常奇怪的投票系统。选举时,每一位 $n$ 名公民会以某种顺序到达投票站。只有两个政党可供投票,方便起见分别命名为 1 和 2。当一个人到达投票站时,除非他是计票员,否则他会为其中一个政党投票。计票员不投票,相反,他们会统计计票员到达时两个政党各自获得的票数,如果其中一个政党的票数多于另一个,则该政党获得一分(如果两个政党的票数相同,则双方均不得分)。最终得分最高的政党获胜。如果两个政党最终得分相同,则会陷入混乱。
作为代表 1 党的 Elecuador 总统,你担心即将到来的选举会终结你的统治。幸运的是,你有一个计划来阻止这种情况发生。作为总统,你知道国内每个人的投票意向、谁是计票员,以及每个人到达投票站的顺序。通过打一些电话,你还可以影响计票员到达的时间。在一次操作中,你可以将一名计票员与到达顺序列表中的相邻人员交换位置。注意,不能交换两名相邻的非计票员。为了确保 1 党获胜,最少需要多少次交换?
输入格式
输入的第一行包含一个整数 $n$ ($1 \le n \le 5\,000$),表示 Elecuador 的公民人数。接下来一行包含一个长度为 $n$ 的字符串 $s$,由字符 0、1 和 2 组成。该字符串表示公民到达投票站的顺序。如果第 $i$ 个字符 $s_i$ 为 1 或 2,则表示第 $i$ 位公民将分别投票给 1 党或 2 党。如果 $s_i$ 为 0,则表示第 $i$ 位公民是计票员。
输出格式
如果能够确保获胜,输出一个整数,即最少需要的交换次数。否则,输出 “impossible”。
样例
样例输入 1
8 12210020
样例输出 1
4
样例输入 2
4 1111
样例输出 2
impossible
样例输入 3
11 00211222220
样例输出 3
5