#include <bits/stdc++.h>
using namespace std;
bool dp[80][262144];
int x[200010];
void dfs(int l, int r, int v, int id, int f) {
  for (int i = 1; i < f; i++) dp[id][i] = 0;
  if (l == r || v == 0) {
    while (f) {
      dp[id][f] = 1;
      f >>= 1;
    }
    return;
  }
  int v1 = v / 2, ls = l, first = 1;
  for (int i = l + 1; i <= r + 1; i++)
    if (x[i] - x[i - 1] > v1 || i == r + 1) {
      int ed = f >> 1;
      dfs(ls, i - 1, v1, id + 1, ed);
      if (first) {
        for (int j = 1; j <= ed; j++)
          if (dp[id + 1][j]) dp[id][j] = 1;
        first = 0;
      } else {
        for (int j = f - 1; j; j--)
          if (dp[id][j]) {
            for (int k = 1; k <= ed; k++)
              if (dp[id + 1][k] && (j & k) == 0) dp[id][k | j] = 1;
            dp[id][j] = 0;
          }
      }
      ls = i;
    }
  dp[id][f] = 1;
}
int n, V, tot, flag = 1, mx;
int st[100], se[100];
bool check(int id) {
  memset(dp[tot + 1], 0, sizeof dp[tot + 1]);
  bool first = 1, ch = 0;
  for (int i = 1; i <= tot; i++) {
    if (i == id) continue;
    ch = 0;
    if (first) {
      for (int j = 1; j < mx; j++)
        if (dp[i][j]) dp[tot + 1][j] = 1, ch = 1;
      first = 0;
    } else {
      for (int j = mx - 1; j; j--)
        if (dp[tot + 1][j]) {
          for (int k = 1; k < mx; k++)
            if (dp[i][k] && (j & k) == 0) dp[tot + 1][j | k] = 1, ch = 1;
          dp[tot + 1][j] = 0;
        }
    }
    if (ch == 0) return 0;
  }
  return ch;
}
int main() {
  scanf("%d%d", &n, &V);
  for (int i = 1; i <= n; i++) scanf("%d", &x[i]);
  int tmp = V, cnt = 0, ls = 1;
  while (tmp) {
    tmp >>= 1;
    cnt++;
  }
  mx = 1 << cnt;
  x[n + 1] = x[n] + V + 1;
  for (int i = 2; i <= n + 1; i++)
    if (x[i] - x[i - 1] > V) {
      dfs(ls, i - 1, V, ++tot, mx);
      if (tot > cnt + 1) {
        flag = 0;
        break;
      }
      st[tot] = ls, se[tot] = i - 1;
      ls = i;
    }
  if (!flag) {
    for (int i = 1; i <= n; i++) printf("Impossible\n");
    return 0;
  }
  for (int i = 1; i <= tot; i++)
    if (check(i)) {
      for (int j = st[i]; j <= se[i]; j++) printf("Possible\n");
    } else {
      for (int j = st[i]; j <= se[i]; j++) printf("Impossible\n");
    }
}
