“包工头”鲍勃厌倦了建造小房子和铺设狭窄的道路,他渴望做点更大的事情。一位非常古怪的客户交给他的新工作正是他所需要的:他被要求建造一堵宽度固定但高度无限的墙!客户向他保证,他不必担心建筑材料的问题,而且已经为他订购了各种砖块的无限供应。当然,建造一堵稳定的墙需要非常仔细的规划,特别是如果它被要求是无限高的话。特别地,只有当相邻两行砖块之间的缝隙没有直接重合时,墙才是稳定的,如图 B.1 所示。鲍勃根据他长期的经验知道,如果能够建造这样一堵墙,那么可以通过交替使用仅两种行配置来实现。
图 B.1:左侧展示了使用样例输入 1 中的砖块类型建造的不稳定墙。右侧展示了使用相同砖块类型建造的稳定墙。注意,尽管图中只显示了两行,但通过重复这两种行配置,可以建造一堵无限高的墙。
鲍勃对这份新工作感到非常兴奋,并迅速投入了工作。给定可用的砖块类型,是否有可能建造一堵宽度恰好为 $w$ 且高度无限的稳定墙?如果可以,鲍勃应该如何仅使用两种交替的行配置来建造它?
输入格式
输入包含: 一行,包含两个整数 $n$ 和 $w$ ($1 \le n, w \le 3 \cdot 10^5$),分别表示砖块类型的数量和墙的宽度。 一行,包含 $n$ 个整数 $b$ ($1 \le b \le w$),表示砖块类型的宽度。
注意:鲍勃拥有所有砖块类型的无限供应。
输出格式
如果可以建造这样一堵墙,则输出 “possible”。否则,输出 “impossible”。
如果可以建造,请提供两种可以交替使用的行配置。对于每一行,首先输出该行所需的砖块数量,然后按使用顺序输出砖块的长度。如果交替使用这两行能产生一堵稳定的墙,则你的方案被视为有效。
如果有多种有效方案,你可以输出其中任意一种。
样例
样例输入 1
4 12 3 2 7 2
样例输出 1
possible 5 2 2 3 2 3 3 3 2 7
样例输入 2
3 11 6 7 8
样例输出 2
impossible