#include <iostream>
#include <vector>
using namespace std;
vector<long long int> function(vector<long long int> A, long long int N, long long int X){
vector<long long int> res;
long long int sum =0;
for(long long int j=0;j<N;j++){
sum += A[j];
}
long long int j=0;
while(sum>0){
if(j>=N){
j=0;
}
if(A[j]==0){
j++;
}
else if(A[j]>0 && A[j]<X){
sum=sum-A[j];
A[j]=0;
res.push_back(j+1);
j++;
}
else if(A[j]>=X){
sum=sum-X;
A[j]=A[j]-X;
j++;
}
}
return res;
}
int main() {
long int T;
cin >> T;
for(long int i=0;i<T ;i++){
long long int N, X;
cin>>N>>X;
vector<long long int> A;
for(long long int j=0;j<N;j++){
long long int temp;
cin>>temp;
A.push_back(temp);
}
vector<long long int> res;
cout << "Case #" << i+1 << ": ";
res = function(A, N, X);
for(long long int j=0;j<N;j++){
cout << res[j] << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnZlY3Rvcjxsb25nIGxvbmcgaW50PiBmdW5jdGlvbih2ZWN0b3I8bG9uZyBsb25nIGludD4gQSwgbG9uZyBsb25nIGludCBOLCBsb25nIGxvbmcgaW50IFgpewogICAgdmVjdG9yPGxvbmcgbG9uZyBpbnQ+IHJlczsKICAgIGxvbmcgbG9uZyBpbnQgc3VtID0wOwogICAgCiAgICBmb3IobG9uZyBsb25nIGludCBqPTA7ajxOO2orKyl7CiAgICAgICAgc3VtICs9IEFbal07CiAgICB9CiAgICBsb25nIGxvbmcgaW50IGo9MDsKICAgIHdoaWxlKHN1bT4wKXsKICAgIAlpZihqPj1OKXsKICAgIAkJaj0wOwogICAgCX0KICAgIAlpZihBW2pdPT0wKXsKICAgIAkJaisrOwogICAgCX0KICAgICAgICBlbHNlIGlmKEFbal0+MCAmJiBBW2pdPFgpewogICAgICAgICAgICBzdW09c3VtLUFbal07CiAgICAgICAgICAgIEFbal09MDsKICAgICAgICAgICAgcmVzLnB1c2hfYmFjayhqKzEpOwogICAgICAgICAgICBqKys7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoQVtqXT49WCl7CiAgICAgICAgICAgIHN1bT1zdW0tWDsKICAgICAgICAgICAgQVtqXT1BW2pdLVg7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgppbnQgbWFpbigpIHsKICAgIGxvbmcgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIGZvcihsb25nIGludCBpPTA7aTxUIDtpKyspewogICAgICAgIGxvbmcgbG9uZyBpbnQgTiwgWDsKICAgICAgICBjaW4+Pk4+Plg7CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZyBpbnQ+IEE7CiAgICAgICAgZm9yKGxvbmcgbG9uZyBpbnQgaj0wO2o8TjtqKyspewogICAgICAgICAgICBsb25nIGxvbmcgaW50IHRlbXA7CiAgICAgICAgICAgIGNpbj4+dGVtcDsKICAgICAgICAgICAgQS5wdXNoX2JhY2sodGVtcCk7CiAgICAgICAgfQogICAgICAgIHZlY3Rvcjxsb25nIGxvbmcgaW50PiByZXM7CiAgICAgICAgY291dCA8PCAiQ2FzZSAjIiA8PCBpKzEgPDwgIjogIjsKICAgICAgICByZXMgPSBmdW5jdGlvbihBLCBOLCBYKTsKICAgICAgICBmb3IobG9uZyBsb25nIGludCBqPTA7ajxOO2orKyl7CiAgICAgICAgICAgIGNvdXQgPDwgcmVzW2pdIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0=