#include<bits/stdc++.h>

int main(){
    using namespace std;
    unsigned long N, K;
    cin >> N >> K;
    unsigned long mx{0}, g{0};
    for(unsigned long i{0}, A; i < N; ++i){
        cin >> A;
        mx = max(mx, A);
        g = __gcd(g, A);
        if(mx >= K && K % g == 0)return 0 & puts("POSSIBLE");
    }
    puts("IMPOSSIBLE");
    return 0;
}
#include <iostream>
#include <numeric>

using namespace std;

const string YES = "POSSIBLE";
const string NO = "IMPOSSIBLE";

int main() {
  int N, K, M{}, D{}, A;
  cin >> N >> K;
  while (cin >> A) {
    M = max(M, A);
    if (D) D = gcd(D, A);
    else D = A;
  }
  cout << (K <= M && (M - K) % D == 0 ? YES : NO) << endl;
}
