#include <bits/stdc++.h>
using namespace std;
const int N=1000005;
int mi[4*N],ma[4*N],a[N],n,m,c;
bool flag;
void build(int k,int l,int r){
if(l==r){
mi[k]=ma[k]=a[l];
return;
}
int mid=(l+r)/2;
build(k*2,l,mid);
build(k*2+1,mid+1,r);
mi[k]=min(mi[k*2],mi[k*2+1]);
ma[k]=max(ma[k*2],ma[k*2+1]);
}
void change(int k,int l,int r,int x,int v){
if(r<x||l>x)return;
if(l==r&&l==x){
mi[k]=ma[k]=v;
return;
}
int mid=(l+r)/2;
change(k*2+1,mid+1,r,x,v);
change(k*2,l,mid,x,v);
mi[k]=min(mi[k*2],mi[k*2+1]);
ma[k]=max(ma[k*2],ma[k*2+1]);
}
int query_min(int k,int l,int r,int x,int y){
if(y<l||x>r)return INT_MAX;
if(x<=l&&r<=y)return mi[k];
int mid=(l+r)/2;
return min(query_min(k*2,l,mid,x,y),query_min(k*2+1,mid+1,r,x,y));
}
int query_max(int k,int l,int r,int x,int y){
if(y<l||x>r)return 0;
if(x<=l&&r<=y)return ma[k];
int mid=(l+r)/2;
return max(query_max(k*2,l,mid,x,y),query_max(k*2+1,mid+1,r,x,y));
}
int main(){
cin>>n>>m>>c;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,1,n);
for(int i=1;i+m<n;i++){
int x=i,y=i+m-1;
int minn=query_min(1,1,n,x,y),maxn=query_max(1,1,n,x,y);
if(maxn-minn<=c)cout<<i<<endl,flag=1;
}
if(!flag)cout<<"NONE";
return 0;
}
提交记录