#include <cstdio>
#define ref(i,x,y)for(int i=x;i<=y;++i)
#define def(i,x,y)for(int i=x;i>=y;--i)
const int N=200001;
int n,m,v,a[N],b[N],pl[19][N],pr[19][N],fl[1<<18],fr[1<<18];
void updmax(int&a,int b){if(b>a)a=b;}
void updmin(int&a,int b){if(b<a)a=b;}
int main(){
	scanf("%d%d",&n,&v);
	ref(i,1,n)scanf("%d",&a[i]);
	ref(i,0,18){
		pl[i][1]=1;pr[i][n]=n;
		pl[i][0]=1;pr[i][n+1]=n;
		ref(j,1+1,n)if(a[j]-a[j-1]<=v)pl[i][j]=pl[i][j-1];else pl[i][j]=j;
		def(j,n-1,1)if(a[j+1]-a[j]<=v)pr[i][j]=pr[i][j+1];else pr[i][j]=j;
		if(!v){m=i;break;}
		v>>=1;
	}
	ref(i,0,(1<<m)-1)fl[i]=0,fr[i]=n+1;
	ref(i,0,(1<<m)-1)ref(j,1,m)if(!(i>>j-1&1)){
		int I=i|(1<<j-1);
		updmax(fl[I],pr[j][fl[i]+1]);
		updmin(fr[I],pl[j][fr[i]-1]);
	}
	ref(i,0,(1<<m)-1)if(pr[0][fl[i]+1]>=fr[((1<<m)-1)^i]-1)
		b[pr[0][fl[i]+1]]=1;
	ref(i,1,n)if(b[pr[0][i]])printf("Possible\n");
		else printf("Impossible\n");
}