#include<bits/stdc++.h>
using namespace std;

const int N=600005;

int a[N],L[25][N],R[25][N],f[N],g[N],S[N];

int main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	int n,m,k,cnt=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++) 
	{
		cin>>a[i];
		if(i!=1&&a[i]-a[i-1]>m) ++cnt;
	}
	k=log2(m)+2;
//	cout<<k<<endl;
	if(cnt>k)
	{
		for(int i=1;i<=n;i++) cout<<"Impossible"<<endl;
		return 0;
	}
	int s=m;
	for(int i=0;i<k;i++)
	{
		L[i][1]=1;
		R[i][n]=n;
		for(int j=2;j<=n;j++)
		{
			if(a[j]-a[j-1]>s) L[i][j]=j;
			else L[i][j]=L[i][j-1];
		}
		for(int j=n-1;j>=1;j--)
		{
			if(a[j+1]-a[j]>s) R[i][j]=j;
			else R[i][j]=R[i][j+1];
		}
		s/=2;
	}
	/*for(int i=0;i<k;i++)
	{
		for(int j=1;j<=n;j++) cout<<L[i][j]<<" ";
		cout<<endl;
		for(int j=1;j<=n;j++) cout<<R[i][j]<<" ";
		cout<<endl;
	}
	cout<<endl;*/
	for(int i=0;i<(1<<k);i++)
	{
		f[i]=0;
		g[i]=n+1;
	}
	for(int i=0;i<(1<<(k-1));i++)
	{
		for(int j=1;j<k;j++)
		{
			if(!(i&(1<<(j-1))))
			{
				if(f[i]==n) f[i|(1<<(j-1))]=n;
				else f[i|(1<<(j-1))]=max(f[i|(1<<(j-1))],R[j][f[i]+1]);
				if(g[i]==1) g[i|(1<<(j-1))]=1;
				else g[i|(1<<(j-1))]=min(g[i|(1<<(j-1))],L[j][g[i]-1]);
			}
		}
	}
/*	for(int i=0;i<(1<<(k-1));i++) cout<<f[i]<<" ";
	cout<<endl;
	for(int i=0;i<(1<<(k-1));i++) cout<<g[i]<<" ";
	cout<<endl;*/
	for(int i=0;i<=n;i++) S[i]=0x7f7f7f7f;
	for(int i=0;i<(1<<(k-1));i++) 
	{
	//	cout<<i<<" "<<(1<<(k-1))<<" "<<((1<<(k-1))^i)<<endl;
		S[f[i]]=min(S[f[i]],g[((1<<(k-1))-1)^i]);
	}
//	for(int i=0;i<=n;i++) cout<<S[i]<<" ";
//	cout<<endl;
	for(int i=n-1;i>=0;i--) S[i]=min(S[i],S[i+1]);
//	for(int i=0;i<=n;i++) cout<<S[i]<<" ";
//	cout<<endl;
	for(int i=1;i<=n;i++)
	{
		if(S[L[0][i]-1]<=R[0][i]+1) cout<<"Possible"<<endl;
		else cout<<"Impossible"<<endl;
	}
	return 0;
}
