#agc018a. [agc018_a]Getting Difference

[agc018_a]Getting Difference

题目描述

有一个盒子里装有NN个球。第ii个球上写有整数AiA_i。Snuke可以任意多次执行以下操作:

  • 从盒子中取出两个球。然后,将它们与一个新球一起放回盒子中,新球上写有两个球上的整数之差的绝对值。

确定是否可能使盒子中有一颗上面写有整数KK的球。

约束条件

  • 1N1051 \leq N \leq 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 1K1091 \leq K \leq 10^9
  • 所有输入的值都是整数。

输入

输入以以下格式从标准输入给出:

NN KK A1A_1 A2A_2 ...... ANA_N

输出

如果Snuke可以达到盒子中有一颗上面写有整数KK的球的状态,则输出POSSIBLE;如果不可能,则输出IMPOSSIBLE


示例输入1

3 7
9 3 4

示例输出1

POSSIBLE

首先,取出球9944,将它们与一个新球abs(94)=5abs(9-4)=5一起放回。接下来,取出球3355,将它们与一个新球abs(35)=2abs(3-5)=2一起放回。最后,取出球9922,将它们与一个新球abs(92)=7abs(9-2)=7一起放回。现在盒子里有77,因此答案是POSSIBLE


示例输入2

3 5
6 9 3

示例输出2

IMPOSSIBLE

无论我们做什么,都不可能有55在盒子中。因此答案是IMPOSSIBLE


示例输入3

4 11
11 3 7 15

示例输出3

POSSIBLE

在我们做任何操作之前,盒子中已经有一个1111。因此答案是POSSIBLE


示例输入4

5 12
10 2 8 6 4

示例输出4

IMPOSSIBLE