#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
using ll = long long;
const ll mod = 998244353;
#define fi first
#define se second
#define rep(i,n) for(ll i=0;i<n;i++)
#define all(x) x.begin(),x.end()
#define faster ios::sync_with_stdio(false);cin.tie(nullptr)

int main() {
    ll N,S;
    cin >> N >> S;
    vector<pair<ll,ll>> P(N);
    rep(i,N){
        cin >> P[i].fi;
        P[i].se=i;
    }
    sort(all(P));
    vector<ll> ans;
    rep(i,N){
        bool ok=true;
        if(i>0) if(P[i].fi-P[i-1].fi<=S) ok=false;
        if(i<N-1) if(P[i+1].fi-P[i].fi<=S) ok=false;
        if(ok) ans.push_back(P[i].se);
    }
    sort(all(ans));
    cout << ans.size() << endl;
    rep(i,ans.size()){
        cout << ans[i]+1 << " ";
    }
    cout << endl;
    return 0;
}