#include<bits/stdc++.h>
#define L long long
using namespace std;
int n,m,p,x[20],a[200010],l[200010][20],r[200010][20],f[300000],g[300000],w[200010];
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	int i,j,k;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	  scanf("%d",&a[i]);
	x[0]=m;
	while(x[p])
	  x[++p]=x[p-1]/2;
	for(i=0;i<=p;i++)
	  {
       for(j=k=1;j<=n;j++)
         {
          if(j>1 && a[j]-a[j-1]>x[i])
            k=j;
          l[j][i]=k;
         }
       for(j=k=n;j>0;j--)
         {
          if(j<n && a[j+1]-a[j]>x[i])
            k=j;
          r[j][i]=k;
         }
       r[n+1][i]=n+1;
      }
    for(i=0;i<(1<<p);i++)
      g[i]=n+1;
    for(i=1;i<(1<<p);i++)
      for(j=1;j<=p;j++)
        if(i&(1<<j-1))
          {
           f[i]=max(f[i],r[f[i^(1<<j-1)]+1][j]);
           g[i]=min(g[i],l[g[i^(1<<j-1)]-1][j]);
          }
    for(i=0;i<(1<<p);i++)
      {
       j=l[g[i]-1][0];
       k=r[f[(1<<p)-1^i]+1][0];
       if(j<=k)
         w[j]++,w[k+1]--;
      }
    for(i=1,k=0;i<=n;i++)
      {
       k+=w[i];
       if(k)
         printf("Possible\n");
       else
         printf("Impossible\n");
      }
	return 0;
}
