#include using namespace std; using Int = int64_t; using uInt = uint64_t; template using min_heap = priority_queue, greater>; template using max_heap = priority_queue, less>; void solve( /* Copyright by Urtusea */ ) { Int n, k; cin >> n >> k; vector a(n + 1); for (int i = 1; i <= n; i++) cin >> a[i]; vector id(n + 1); iota(id.begin(), id.end(), 0); sort(id.begin() + 1, id.end(), [&](int l, int r) { return a[l] < a[r]; }); vector vis(n + 1); for (int i = 1; i <= n; i++) { if (i != 1) { if (abs(a[id[i]] - a[id[i - 1]]) <= k) vis[i] = true; } if (i != n) { if (abs(a[id[i]] - a[id[i + 1]]) <= k) vis[i] = true; } } vector cnt; for (int i = 1; i <= n; i++) { if (!vis[i]) cnt.emplace_back(id[i]); } sort(cnt.begin(), cnt.end()); cout << cnt.size() << '\n'; for (auto &x: cnt) { cout << x << " \n"[x == cnt.back()]; } } int main(int argc, char *argv[], char *envp[]) { cin.tie(nullptr)->sync_with_stdio(false); // for (int i = 1, n = (cin >> n, n); i <= n; i++) solve(); return 0; }