김강산은 벽돌을 쌓아 만든 인공 산으로, 암벽 등반을 연습하려는 사람들이 찾아온다. 그런데 경사가 너무 가팔라 초보자가 오르기에는 어렵다. 관리인 상근이는 산을 조금 더 완만하게 다듬으려고 한다.
김강산은 일렬로 늘어선 $n$개의 벽돌 무더기로 이루어져 있으며, 왼쪽에서 $i$번째 무더기에는 벽돌이 $h_i$개 쌓여 있다. 인접한 두 무더기의 높이 차이는 $|h_{i+1} - h_i|$이다. 상근이는 인접한 모든 무더기의 높이 차이가 $d$ 이하가 되도록 만들고 싶다.
상근이는 아무 무더기에나 벽돌을 더 쌓거나 빼낼 수 있지만, 첫 번째 무더기와 마지막 무더기의 벽돌 개수는 바꿀 수 없다. 벽돌 하나를 쌓거나 빼는 데 드는 노력은 $1$이고, 상근이는 전체 노력을 최소로 하고 싶다.
각 무더기의 높이가 주어졌을 때, 인접한 모든 높이 차이를 $d$ 이하로 만들기 위해 쌓거나 빼야 하는 벽돌 개수의 최솟값을 구하시오. 조건을 만족시키는 것이 불가능하면 impossible을 출력한다.
첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. ($1 \le T \le 100$)
각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 무더기의 개수 $n$과 허용되는 최대 높이 차이 $d$가 공백으로 구분되어 주어진다. ($2 \le n \le 100$, $0 \le d \le 10^9$) 둘째 줄에는 각 무더기에 쌓인 벽돌의 개수 $h_1, h_2, \dots, h_n$이 공백으로 구분되어 주어진다. ($0 \le h_i \le 10^9$)
각 테스트 케이스마다, 인접한 모든 무더기의 높이 차이를 $d$ 이하로 만들기 위해 쌓거나 빼야 하는 벽돌 개수의 최솟값을 한 줄에 하나씩 출력한다. 조건을 만족시키는 것이 불가능하면 impossible을 출력한다.