#include using namespace std; using ll = long long; using vi = vector; using vl = vector; using pi = pair; using pl = pair; #define all(x) x.begin(),x.end() #define rep(i,j,n) for (long long i = j; i < (long long)(n); i++) const long long MOD = 1000000007; const long long MOD2 = 998244353; const int INF = ((1<<30)-1); const long long LINF = (1LL<<60); const double PI = 3.141592653589793238; template inline bool chmax(T& a, T b) { if (a < b) {a = b;return 1;} return 0; } template inline bool chmin(T& a, T b) { if (a > b) {a = b;return 1;} return 0; } /* #include using mint = atcoder::modint998244353; using namespace atcoder; */ //-------------------------------------------------- int solve(){ ll n,s; cin >> n >> s; vector a(n); rep(i,0,n){ cin >> a[i].first; a[i].second = i; } sort(all(a)); vl ans; rep(i,0,n){ ll d = LINF; if(i != 0)chmin(d, a[i].first-a[i-1].first); if(i != n-1)chmin(d , a[i+1].first-a[i].first); if(d > s)ans.push_back(a[i].second); } cout << ans.size() << endl; rep(i,0,ans.size())cout << ans[i] << " "; cout << endl; return 0; } int main(){ cout << fixed << setprecision(20); ios::sync_with_stdio(0), cin.tie(0); int t = 1; //cin >> t; for(int i = 0; i < t; i++){ solve(); } return 0; }