#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
long long d;
cin >> d;
vector <int> vec;
vector <int> nums;
vector <int> was;
int b;
int random;
int problem = 0;
for (int i = 0; i < n; i++)
{
cin >> b;
vec.push_back(b);
nums.push_back(i);
}
srand(time(0));
for (int j = 0; j < n; j++)
{
vector <int> vec_C;
vector <int> nums_C;
for (int z = 0; z < vec.size(); z++)
{
vec_C[z] = vec[z];
nums_C[z] = nums[z];
}
int i = 0;
while (vec_C.size() != 1)
{
random = rand() % 2;
if (vec_C[i] < vec_C[i + 1] + d && random == 0)
{
vec_C[i + 1] += vec_C[i];
vec_C.erase(vec_C.begin() + i);
nums_C.erase(nums_C.begin() + i);
i = 0;
}
else if (vec_C[i] + d > vec_C[i + 1] && random == 1)
{
vec_C[i] += vec_C[i + 1];
vec_C.erase(vec_C.begin() + i + 1);
nums_C.erase(nums_C.begin() + i + 1);
i = 0;
}
i++;
}
if (find(was.begin(), was.end(), nums_C[0]) != was.end())
{
j--;
problem++;
}
else
{
was.push_back(nums_C[0]);
problem = 0;
}
if (problem >= 10)
{
for (int q = 0; q < was.size(); q++)
cout << was[q] << " ";
return 0;
}
}
for (int q = 0; q < was.size(); q++)
cout << was[q] << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuOwoJY2luID4+IG47Cglsb25nIGxvbmcgZDsKCWNpbiA+PiBkOwoJdmVjdG9yIDxpbnQ+IHZlYzsKCXZlY3RvciA8aW50PiBudW1zOwoJdmVjdG9yIDxpbnQ+IHdhczsKCWludCBiOwoJaW50IHJhbmRvbTsKCWludCBwcm9ibGVtID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJewoJCWNpbiA+PiBiOwoJCXZlYy5wdXNoX2JhY2soYik7CgkJbnVtcy5wdXNoX2JhY2soaSk7Cgl9CglzcmFuZCh0aW1lKDApKTsKCWZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKQoJewoJCXZlY3RvciA8aW50PiB2ZWNfQzsKCQl2ZWN0b3IgPGludD4gbnVtc19DOwoJCWZvciAoaW50IHogPSAwOyB6IDwgdmVjLnNpemUoKTsgeisrKQoJCXsKCQkJdmVjX0Nbel0gPSB2ZWNbel07CgkJCW51bXNfQ1t6XSA9IG51bXNbel07CgkJfQoJCWludCBpID0gMDsKCQl3aGlsZSAodmVjX0Muc2l6ZSgpICE9IDEpCgkJewoJCQlyYW5kb20gPSByYW5kKCkgJSAyOwoJCQlpZiAodmVjX0NbaV0gPCB2ZWNfQ1tpICsgMV0gKyBkICYmIHJhbmRvbSA9PSAwKQoJCQl7CgkJCQl2ZWNfQ1tpICsgMV0gKz0gdmVjX0NbaV07CgkJCQl2ZWNfQy5lcmFzZSh2ZWNfQy5iZWdpbigpICsgaSk7CgkJCQludW1zX0MuZXJhc2UobnVtc19DLmJlZ2luKCkgKyBpKTsKCQkJCWkgPSAwOwoJCQl9CgkJCWVsc2UgaWYgKHZlY19DW2ldICsgZCA+IHZlY19DW2kgKyAxXSAmJiByYW5kb20gPT0gMSkKCQkJewoJCQkJdmVjX0NbaV0gKz0gdmVjX0NbaSArIDFdOwoJCQkJdmVjX0MuZXJhc2UodmVjX0MuYmVnaW4oKSArIGkgKyAxKTsKCQkJCW51bXNfQy5lcmFzZShudW1zX0MuYmVnaW4oKSArIGkgKyAxKTsKCQkJCWkgPSAwOwoJCQl9CgkJCWkrKzsKCQl9CgkJaWYgKGZpbmQod2FzLmJlZ2luKCksIHdhcy5lbmQoKSwgbnVtc19DWzBdKSAhPSB3YXMuZW5kKCkpCgkJewoJCQlqLS07CgkJCXByb2JsZW0rKzsKCQl9CgkJZWxzZQoJCXsKCQkJd2FzLnB1c2hfYmFjayhudW1zX0NbMF0pOwoJCQlwcm9ibGVtID0gMDsKCQl9CgkJaWYgKHByb2JsZW0gPj0gMTApCgkJewoJCQlmb3IgKGludCBxID0gMDsgcSA8IHdhcy5zaXplKCk7IHErKykKCQkJCWNvdXQgPDwgd2FzW3FdIDw8ICIgIjsKCQkJcmV0dXJuIDA7CgkJfQoJfQoJZm9yIChpbnQgcSA9IDA7IHEgPCB3YXMuc2l6ZSgpOyBxKyspCgkJY291dCA8PCB3YXNbcV0gPDwgIiAiOwkKCXJldHVybiAwOwp9