#include<bits/stdc++.h>
using namespace std;
const int N=200005;
const int M=(1<<18)+5;
int a[N],b[N],n,m,v;
int pl[19][N],pr[19][N];
int fl[M],fr[M];
int main(){
	scanf("%d%d",&n,&v);
	for (int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for (int i=0;i<=18;i++){
		pl[i][1]=pl[i][0]=1;
		pr[i][n]=pr[i][n+1]=n;
		for (int j=2;j<=n;j++)
			pl[i][j]=(a[j]-a[j-1]<=v?pl[i][j-1]:j);
		for (int j=n-1;j;j--)
			pr[i][j]=(a[j+1]-a[j]<=v?pr[i][j+1]:j);
		if (!v){
			m=i; break;
		}
		v>>=1;
	}
	for (int i=0;i<1<<m;i++)
		fl[i]=0,fr[i]=n+1;
	for (int i=0;i<1<<m;i++)
		for (int j=1;j<=m;j++)
			if (!((i>>(j-1))&1)){
				int I=i|(1<<(j-1));
				fl[I]=max(fl[I],pr[j][fl[i]+1]);
				fr[I]=min(fr[I],pl[j][fr[i]-1]);
			}
	for (int i=0;i<1<<m;i++)
		if (pr[0][fl[i]+1]>=fr[((1<<m)-1)^i]-1)
			b[pr[0][fl[i]+1]]=1;
	for (int i=1;i<=n;i++)
		if (b[pr[0][i]])
			puts("Possible");
		else
			puts("Impossible");
}