“建筑师”鲍勃厌倦了建造小房子和铺设狭窄的道路,他渴望做一些更宏大的事情。一位非常古怪的客户交给他一项新任务,这正是他所需要的:他被要求建造一个圆形的井,这个井的周长固定,且深度无限!客户向他保证,他不必担心建筑材料的问题,因为已经为他订购了各种各样、仅在弧长上有所不同的砖块,且供应无限。
当然,建造一个稳定的井需要非常仔细的规划,特别是如果它被要求是无限深的话。具体来说,只有当相邻两行砖块之间的缝隙没有直接重合时,井才是稳定的,如下图所示。所有的砖块长度均为整数,且只能以整数长度进行偏移。注意,即使是覆盖了整个周长的砖块,也有起点和终点,因此也存在一个缝隙。
鲍勃根据他长期的经验知道,如果能够建造这样的一口井,那么它可以通过交替使用两种行配置来完成。
左侧展示了使用样例输入 1 中的砖块类型建造的不稳定井。右侧展示了使用相同砖块类型建造的稳定井。出于视觉原因,外圈的砖块看起来更大,尽管它们的总弧长相同。注意,虽然图中只显示了两行,但通过重复这两种行配置,可以建造出一口无限深的井。箭头指向样例的零偏移位置。
鲍勃对这项新工作感到非常兴奋,并迅速投入了工作。给定可用的弧形砖块类型,是否可以建造一个周长恰好为 $w$ 且高度无限的稳定井?如果可以,鲍勃应该如何仅使用两种交替的行配置来建造它?
输入格式
输入的第一行包含两个整数 $n$ 和 $w$ ($1 \le n, w \le 3 \cdot 10^5$),分别表示砖块类型的数量和井的周长。下一行包含 $n$ 个整数 $b_i$ ($1 \le b_i \le w$),表示砖块类型的弧长。
注意,鲍勃拥有所有砖块类型的无限供应。
输出格式
如果可以建造这样的一口井,输出 possible。否则,输出 impossible。
如果可以建造,请提供两种可以交替使用的行配置。对于每种行配置,首先输出该行所需的砖块数量以及放置第一块砖的顺时针偏移量(占一行),随后输出一行,包含按顺时针顺序排列的砖块弧长。注意,偏移量必须是一个小于井周长的非负整数。如果交替使用这两行能产生一个稳定的井,则你的方案被视为有效。
如果有多种有效的解决方案,你可以输出其中任意一种。
样例
样例输入 1
4 12 3 2 7 2
样例输出 1
possible 5 0 2 3 2 3 2 3 1 3 2 7
样例输入 2
3 11 6 7 8
样例输出 2
impossible