Description
听说公主被关押在城堡里,彭大侠下定决心:不管一路上有多少坎坷,不管城堡中的看守有多少厉害,不管救了公主之后公主会不会再被抓走,不管公主是否漂亮、是否会钟情于自己,他将义无反顾地朝着城堡前进。
Input
文件第一行包含一个整数m(m≤5),表示问题求解次数。接下来的2m行依次表示每次求解的输入数据块。每个输入数据块占2行,其中第一行包含两个整数n和d,分别表示从起点到城堡入口处必须经过的支撑点数和每次跳跃允许的最大纵向落差,n和d之间用空格隔开,输入数据保证2≤n≤5000,0≤d≤109;第二行包含用空格隔开的n个非负整数h1、h2、…、hn,其中hi(1≤i≤n)表示第i个支撑点的高度,特别地,h1表示彭大侠出发时所在支撑点的高度,hn表示城堡入口所在支撑点的高度,输入数据保证对所有1≤i≤n有0≤hi≤109。
Output
有m行,第I(1≤I≤m)行表示第I次求解时彭大侠到达城堡必须耗费的最少金币数量。若无论怎样使用杀手锏他都无法到达城堡,则输出impossible。输入数据保证答案在int64范围之内。
Sample Input
310 2
4 5 10 6 6 9 4 7 9 8
3 1
6 4 0
4 2
3 0 6 3
Sample Output
6impossible
4
Hint
对样例中的第一个输入数据块,d=2,把第三个支撑点降低3个单位,把第六个支撑点降低1个单位,把第七个支撑点升高2个单位,原序列变成:4 5 7 6 6 8 6 7 9 8,这时任意相邻支撑点的纵向落差没有超过2,彭大侠可以到达城堡!