#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long LL;

int kano()
{
	char ch=getchar();int w=0,u=1;
	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')u=-1;
	for(;ch>='0'&&ch<='9';ch=getchar())w=w*10+ch-'0';
	return w*u;
}
int n,v,o,u,mx;
int a[200005];
int p[21][200005],r[21][200005];
int f[2][262145];
bool bo[200005];
int main()
{
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);
	n=kano();v=kano();
	for(int i=1;i<=n;i++)a[i]=kano();
	for(o=v,u=0;o>0;o=o>>1,u++)
	{
		int la=1;p[u][1]=1;r[u][1]=1;
		for(int i=2;i<=n;i++)
		{
			if(a[i]-a[i-1]<=o)
			{
				p[u][la]=i;
				r[u][i]=la;
			}
			else 
			{
				la=i;
				p[u][la]=i;
				r[u][i]=la;
			}	
		}
	}
	for(int i=1;i<=n;i++)p[u][i]=r[u][i]=i;
	mx=1<<u;mx--; 
	for(int i=0;i<=mx;i++)
	{
		if(f[0][i]>n)f[0][i]=n;
		for(int j=1,l=1;j<=mx;j=j<<1,l++)
		{
			if(i&j)continue;
			if(f[0][i]!=n)f[0][i|j]=max(f[0][i|j],p[l][r[l][f[0][i]+1]]);
			else f[0][i|j]=n;
		}
	}
	for(o=v>>1,u=1;o>0;o=o>>1,u++)
	{
		int la=n;p[u][n]=n;r[u][n]=n;
		for(int i=n-1;i>=1;i--)
		{
			if(a[i+1]-a[i]<=o)
			{
				p[u][la]=i;
				r[u][i]=la;
			}
			else 
			{
				la=i;
				p[u][la]=i;
				r[u][i]=la;
			}
		}
	}
	for(int i=1;i<=n;i++)p[u][i]=r[u][i]=i;
	for(int i=0;i<=mx;i++)f[1][i]=n+1;
	for(int i=0;i<=mx;i++)
	{
		if(f[1][i]<1)f[1][i]=1;
		for(int j=1,l=1;j<=mx;j=j<<1,l++)
		{
			if(i&j)continue;
			if(f[1][i]!=1)f[1][i|j]=min(f[1][i|j],p[l][r[l][f[1][i]-1]]);
			else f[1][i|j]=1;
		}
	}
	r[0][0]=r[0][1];
	r[0][n+1]=r[0][n];
	for(int i=0;i<=mx;i++)
	{
		int j=~i&mx;
		if(r[0][f[0][i]+1]==r[0][f[1][j]-1])bo[r[0][f[0][i]+1]]=1;
		else if(r[0][f[0][i]+1]>r[0][f[1][j]-1])
		{
			bo[0]=1;
			break;
		} 
	}
	for(int i=1;i<=n;i++)
	{
		if(bo[0]||bo[r[0][i]])puts("Possible");
		else puts("Impossible");
	}
}








