#P15773. 环井砌筑
环井砌筑
题目描述
Bob 已经厌倦了修小房子和铺窄路。他接到了一份更适合自己的新工作:为一位想法古怪的客户建造一口圆形水井,而且这口井要无限深。客户已经准备好了无限多种弧形砖块,砖块之间只在弧长上有所不同,每种砖都有无限供应。
要让一口无限深的井保持稳定,需要仔细安排每一层砖。井壁由一圈一圈的砖组成;若相邻两层中,砖块之间的缝隙有任意两个正好上下对齐,则这口井不稳定。所有砖块的长度都是整数,每一层相对于零偏移位置的偏移量也必须是整数。即使某块砖的长度恰好等于整个圆周,它仍然有起点和终点,因此也会产生一条缝隙。
Bob 凭经验知道:如果可以建出这样的稳定井,那么只需要交替使用两种行配置即可。
左图展示使用样例 1 砖型但相邻两层缝隙对齐的不稳定方案;右图展示同样砖型下的稳定方案。图中需要标出零偏移方向箭头,并说明虽然只画出两层,但可通过交替重复两种行配置建成无限深的井。
给定可用砖块的弧长类型,判断是否可以建造一口圆周长恰好为 、高度无限且稳定的井。如果可以,请给出两种交替使用的行配置。
输入格式
输入第一行包含两个整数 ,分别表示砖块类型数和井的圆周长。
第二行包含 个整数 ,表示每种砖块的弧长。
Bob 拥有每种砖块的无限供应。
输出格式
如果可以建造稳定井,输出 possible;否则输出 impossible。
如果可以建造,还需要给出两种可以交替使用的行配置。对于每一种行配置,先输出一行两个整数:这一行所需砖块数量,以及放置第一块砖时的顺时针偏移量;然后输出一行,按顺时针顺序给出这一行中所有砖块的弧长。
偏移量必须是非负整数,且小于井的圆周长。若无限交替使用你输出的两种行配置可以得到稳定井,则答案有效。
如果有多种合法方案,输出任意一种即可。
数据范围
- ;
- 。
样例 1
输入
4 12
3 2 7 2
输出
possible
5 0
2 3 2 3 2
3 1
3 2 7
样例 2
输入
3 11
6 7 8
输出
impossible