#include #include #include #include using namespace std; const long long inf=1LL<<62; const int maxn=110; const int maxm=maxn*maxn*2; int n,cnt; long long h[maxn],s[maxm],dp[maxn][maxm],d; int q[maxm]; void Init() { for(int i=0;i<=n;i++) for(int j=0;j=dp[i-1][now]) last--; q[last++]=now++; } while(pres[q[pre]]) pre++; dp[i][j]=abs(h[i]-s[j])+dp[i-1][q[pre]]; } } ind=lower_bound(s,s+cnt,h[n])-s; if(dp[n][ind]>=inf) printf("impossible\n"); else printf("%I64d\n",dp[n][ind]); } int main() { int T; scanf("%d",&T); while(T--) { cnt=0; scanf("%d%I64d",&n,&d); for(int i=1;i<=n;i++) scanf("%I64d",&h[i]); for(int i=1;i<=n;i++) for(long long j=0;j