神奇糖果(Rare Candies)是所有宝可梦世界中最稀缺的资源之一,这有着非常充分的原因。它们具有令人难以置信的强大能力,可以将宝可梦的等级提升 1 级。它们似乎无法被大量生产,直到你偶然发现了一种在宝可梦世界中从未见过的秘密道具:普通糖果(Common Candy)。通过给宝可梦喂食一颗普通糖果,它的等级会降低 1 级,但会产生一颗神奇糖果,你可以用它来提升任何宝可梦的等级。由于宝可梦的等级始终在 1 到 100 之间,你不能给等级为 1 的宝可梦喂食普通糖果,也不能给等级为 100 的宝可梦喂食神奇糖果。
你有 $N$ 只宝可梦,每只宝可梦的初始等级都在 1 到 100 之间(含 1 和 100)。你希望它们都变得非常强大,因此你将它们排成一排,并按顺序逐个处理它们,直到到达队伍的末尾。对每只宝可梦重复执行以下特定过程一次:
- 如果当前宝可梦的等级为 1,则跳过以下步骤并继续处理下一只宝可梦,因为你无法给它喂食普通糖果。
- 否则,给当前宝可梦喂食一颗普通糖果,这会使其等级降低 1 级,并产生一颗神奇糖果。
- 然后,你将这颗神奇糖果喂给此时队伍中等级最低的宝可梦(这可能是你刚刚喂食了普通糖果的当前宝可梦)。如果有多个等级最低的宝可梦,你可以选择其中任意一只喂食神奇糖果。
在完成这个过程后,你发现你的 $N$ 只宝可梦的等级现在是 $L_1, L_2, \dots, L_N$,且无特定顺序。你怀疑一只狡猾的喵喵(Meowth)可能通过给某些宝可梦喂食额外的糖果来破坏你完美的系统,你需要通过检查 $L_1, L_2, \dots, L_N$ 是否是上述过程的一个可能结果,来确定是否发生了破坏,已知你的宝可梦初始等级在 1 到 100 之间。
输入格式
输入的第一行包含一个整数 $N$,表示宝可梦的数量($1 \le N \le 10^6$)。
输入的第二行包含 $N$ 个空格分隔的整数 $L_1, L_2, \dots, L_N$,表示完成上述过程后每只宝可梦的等级($1 \le L_i \le 100$)。
输出格式
如果 $L_1, L_2, \dots, L_N$ 是上述过程的一个可能结果,则输出 possible,否则输出 impossible。
样例
输入样例 1
2 6 4
输出样例 1
possible
输入样例 2
5 4 4 5 7 7
输出样例 2
possible
输入样例 3
10 3 4 7 7 7 7 7 7 7 7
输出样例 3
impossible