#include <bits/stdc++.h>
using namespace std;
vector<vector<pair<int, int> > > vv;
struct tree {
  vector<int> data;
  vector<tree> child;
  int mind;
  int dis;
  tree(vector<int> seed, int d) {
    for (int i = 0; i < seed.size(); i++) {
      data.push_back(seed[i]);
    }
    dis = d;
  }
  void makechild(int d) {
    if (d == 0) return;
    vector<int> making;
    for (int i = 0; i < data.size() - 1; i++) {
      making.push_back(data[i]);
      if (data[i + 1] - data[i] > d) {
        child.push_back(tree(making, d));
        making.clear();
      }
    }
    making.push_back(data[data.size() - 1]);
    child.push_back(tree(making, d));
    for (int i = 0; i < child.size(); i++) {
      child[i].makechild(d / 2);
    }
  }
  void deep() {
    if (dis == 0) {
      mind = 0;
      return;
    }
    vector<int> minds;
    for (int i = 0; i < child.size(); i++) {
      child[i].deep();
      minds.push_back(child[i].mind);
    }
    sort(minds.begin(), minds.end());
    int con = -1;
    for (int i = 0; i < minds.size(); i++) {
      con++;
      if (minds[i] > con) con = minds[i];
    }
    mind = con;
  }
  void pri(int d) {
    int cc = 0;
    for (cc = 0; d > 0; d /= 2) cc++;
    for (int i = 0; i < child.size(); i++) {
      vector<int> minds;
      for (int j = 0; j < child.size(); j++) {
        if (i != j) {
          minds.push_back(child[j].mind);
        }
      }
      sort(minds.begin(), minds.end());
      bool f = true;
      for (int j = 0; j < minds.size(); j++) {
        if (minds[j] > cc - minds.size() + j) f = false;
      }
      for (int j = 0; j < child[i].data.size(); j++) {
        if (f)
          cout << "Possible" << endl;
        else
          cout << "Impossible" << endl;
      }
    }
  }
  void pri() {
    for (int i = 0; i < data.size(); i++) {
      cout << data[i] << ' ';
    }
    cout << endl;
    for (int j = 0; j < child.size(); j++) {
      child[j].pri();
    }
  }
};
int main() {
  int n, v;
  cin >> n >> v;
  vector<int> x(n);
  for (int i = 0; i < n; i++) cin >> x[i];
  tree root(x, v * 4);
  root.makechild(v);
  root.deep();
  root.pri(v);
}
