#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void amin(T &x, const T &y) {
  if (y < x) x = y;
}
template <class T>
inline void amax(T &x, const T &y) {
  if (x < y) x = y;
}
template <class Iter>
void rprintf(const char *fmt, Iter begin, Iter end) {
  for (bool sp = 0; begin != end; ++begin) {
    if (sp)
      putchar(' ');
    else
      sp = true;
    printf(fmt, *begin);
  }
  putchar('\n');
}
int N, V;
int X[200011];
vector<int> vs;
int m;
vector<int> G[200011];
void calc(int dp[1 << 20]) {
  G[0].push_back(0);
  for (int i = 0, i_len = (N); i < i_len; ++i)
    while (!G[i].empty()) {
      int s = G[i].back();
      G[i].pop_back();
      if (dp[s] != i) continue;
      for (int j = 0, j_len = (m); j < j_len; ++j)
        if (~s >> j & 1) {
          int right = -1;
          if (i == 0 || X[i] - X[i - 1] > vs[j]) {
            right = i + 1;
            while (right < N && X[right] - X[right - 1] <= vs[j]) right++;
          } else {
            continue;
          }
          if (dp[s | (1 << j)] < right) {
            dp[s | (1 << j)] = right;
            G[right].push_back(s | (1 << j));
          }
        }
    }
}
int L[1 << 20], R[1 << 20];
int Z[200011];
void MAIN() {
  scanf("%d%d", &N, &V);
  for (int i = 0, i_len = (N); i < i_len; ++i) scanf("%d", X + i);
  m = V;
  while (1) {
    vs.push_back(m);
    if (m == 0) break;
    m /= 2;
  }
  m = vs.size();
  calc(L);
  reverse(X, X + N);
  for (int i = 0, i_len = (N); i < i_len; ++i) X[i] = -X[i];
  calc(R);
  reverse(X, X + N);
  for (int i = 0, i_len = (N); i < i_len; ++i) X[i] = -X[i];
  memset(Z, 0xc0, sizeof Z);
  for (int s = 0, s_len = (1 << m); s < s_len; ++s)
    if (~s & 1) {
      int t = ((1 << m) - 1) ^ s ^ 1;
      amax(Z[N - R[t]], L[s]);
    }
  int ma = Z[0];
  for (int i = 0; i < N;) {
    int j = i;
    while (j < N && (j == i || X[j] - X[j - 1] <= V)) {
      j++;
      amax(ma, Z[j]);
    }
    for (int k = i; k < j; k++) {
      puts(i <= ma ? "Possible" : "Impossible");
    }
    i = j;
  }
}
int main() {
  int TC = 1;
  for (int tc = 0, tc_len = (TC); tc < tc_len; ++tc) MAIN();
  return 0;
}
