#pragma GCC optimize("O3", "unroll-loops")
// God Help me !!
#include <bits/stdc++.h>
using namespace std;
// #define watch(x) cout << (#x) << " is " << (x) << endl
#define FILES freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define FIXED cout << fixed << setprecision(20)
#define RANDOM srand(time(nullptr))
#define int long long
#define sz(a) (int)a.size()
#define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define sep(i,a,b) for(int i=(int)a;i>=(int)b;i--)
#define inf 0x3f3f3f3f
#define pb push_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define all(a) a.begin(),a.end()
#define x first
#define y second
#define endl "\n"
#define n6 3000005
#define n3 3005
#define n5 300005
#define pi pair<int,int>
#define pii pair<int,pi>
#define dbg1(x) cout << #x << ": " << x << endl;
#define dbg2(x, y) cout << #x << ": " << x << " | " << #y << ": " << y << endl;
#define dbg3(x, y, z) cout << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
#define dbg4(a, b, c, d) cout << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
#define dbg5(a, b, c, d, e) cout << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
#define dbg6(a, b, c, d, e, f) cout << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << " | " << #f << ": " << f << endl;
#define dbg(...) fprintf(stderr, __VA_ARGS__)
#define dbgv(x) cout << #x << " = " << x << endl
#define dbga(arr, len) {cout << #arr << " = "; for (int _ = 0; _ < len; _++)\
cout << arr[_] << " "; cout << endl;}
#define dbgi(it) {cout << #it << " = "; for (const auto& _ : it)\
cout << _ << " "; cout << endl;}
const int md = (int) 1e9 + 7;
inline void add(int &a, int b) {
a += b;
if (a >= md) a -= md;
}
inline void sub(int &a, int b) {
a -= b;
if (a < 0) a += md;
}
inline int mul(int a, int b) {
return (int) ((long long) a * b % md);
}
inline int power(int a, long long b) {
int res = 1;
while (b > 0) {
if (b & 1) {
res = mul(res, a);
}
a = mul(a, a);
b >>= 1;
}
return res;
}
void solve_util(int m, int &cnt, int &sum){
}
const int K = 27;
int st[n5][K];
int arr[n5];
int N;
int h,b,e;
int logi[n5];
void precompute_log(){
logi[1] = 0;
for (int i = 2; i <= n5; i++)
logi[i] = logi[i/2] + 1;
}
int range_sum(int L, int R){
long long sum = 0;
for (int j = K; j >= 0; j--) {
if ((1 << j) <= R - L + 1) {
sum += st[L][j];
L += 1 << j;
}
}
return sum;
}
void RMQ(){
for (int i = 0; i < N; i++)
st[i][0] = arr[i];
for (int j = 1; j <= K; j++)
for (int i = 0; i + (1 << j) <= N; i++)
st[i][j] = min(st[i][j-1], st[i + (1 << (j - 1))][j - 1]);
}
int ans = 0;
int RMQutil(int L, int R){
int j = logi[R - L + 1];
int maxi = min(st[L][j], st[R - (1 << j) + 1][j]);
return maxi;
}
void solve(){
while(cin>>N>>h>>b>>e){
// cout<<N<<h<<b<<e<<endl;
int n = N;
rep(i,0,N-1)cin>>arr[i];
// dbga(arr, N);
b--;e--;
RMQ();
// dbgv(l);dbgv(r);
// int brr[n5];
vector<int> brr(n,0);
// memset(brr, 1, sizeof(brr));
for(int i=b;i<=e;){
for(int j=i+1;j<=e;j++){
if(i+1<=e and arr[i]==arr[i+1]){
brr[i] = 1;
brr[i+1] = 1;
i+=2;
break;
}
if(RMQutil(i+1,j)<arr[i]){
// cout<<" loop1 ";
brr[i] = 1;
// dbgv(i);dbgv(j);dbgv(j-i);
i+=j-i;
// dbgv(i);dbgv(j);dbgv(j-i);
break;
}
else{
// cout<<" loop2 ";
// dbgv(i);dbgv(j);dbgv(j-i);
brr[i] = j-i+1;
}
if(j==e)i+=j-i+1;
}
// dbgi(brr);
}
rep(i,b,e){
cout<<brr[i]<<" ";
}
cout<<"\n";
}
}
signed main()
{
FAST; FIXED; RANDOM;
int t=1;
precompute_log();
// cin>>t;
// time_t time_t1, time_t2;
// time_t1 = clock();
while(t--)
solve();
// time_t2 = clock();
// cout << "time taken :" << time_t2 - time_t1 << endl;
return 0;
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zIiwgInVucm9sbC1sb29wcyIpCi8vIEdvZCBIZWxwIG1lICEhCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLyAjZGVmaW5lIHdhdGNoKHgpIGNvdXQgPDwgKCN4KSA8PCAiIGlzICIgPDwgKHgpIDw8IGVuZGwKIAojZGVmaW5lIEZJTEVTIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOyBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpCiNkZWZpbmUgRkFTVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKQojZGVmaW5lIEZJWEVEIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDIwKQojZGVmaW5lIFJBTkRPTSBzcmFuZCh0aW1lKG51bGxwdHIpKQojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgcmVwKGksYSxiKSBmb3IoaW50IGk9KGludClhO2k8PShpbnQpYjtpKyspCiNkZWZpbmUgc2VwKGksYSxiKSBmb3IoaW50IGk9KGludClhO2k+PShpbnQpYjtpLS0pCiNkZWZpbmUgaW5mIDB4M2YzZjNmM2YKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgbjYgMzAwMDAwNQojZGVmaW5lIG4zIDMwMDUKI2RlZmluZSBuNSAzMDAwMDUKIAojZGVmaW5lIHBpIHBhaXI8aW50LGludD4KI2RlZmluZSBwaWkgcGFpcjxpbnQscGk+CiAKI2RlZmluZSBkYmcxKHgpICAgICAgICAgICAgICAgIGNvdXQgPDwgI3ggPDwgIjogIiA8PCB4IDw8IGVuZGw7CiNkZWZpbmUgZGJnMih4LCB5KSAgICAgICAgICAgICBjb3V0IDw8ICN4IDw8ICI6ICIgPDwgeCA8PCAiIHwgIiA8PCAjeSA8PCAiOiAiIDw8IHkgPDwgZW5kbDsKI2RlZmluZSBkYmczKHgsIHksIHopICAgICAgICAgIGNvdXQgPDwgI3ggPDwgIjogIiA8PCB4IDw8ICIgfCAiIDw8ICN5IDw8ICI6ICIgPDwgeSA8PCAiIHwgIiA8PCAjeiA8PCAiOiAiIDw8IHogPDwgZW5kbDsKI2RlZmluZSBkYmc0KGEsIGIsIGMsIGQpICAgICAgIGNvdXQgPDwgI2EgPDwgIjogIiA8PCBhIDw8ICIgfCAiIDw8ICNiIDw8ICI6ICIgPDwgYiA8PCAiIHwgIiA8PCAjYyA8PCAiOiAiIDw8IGMgPDwgIiB8ICIgPDwgI2QgPDwgIjogIiA8PCBkIDw8IGVuZGw7CiNkZWZpbmUgZGJnNShhLCBiLCBjLCBkLCBlKSAgICBjb3V0IDw8ICNhIDw8ICI6ICIgPDwgYSA8PCAiIHwgIiA8PCAjYiA8PCAiOiAiIDw8IGIgPDwgIiB8ICIgPDwgI2MgPDwgIjogIiA8PCBjIDw8ICIgfCAiIDw8ICNkIDw8ICI6ICIgPDwgZCA8PCAiIHwgIiA8PCAjZSA8PCAiOiAiIDw8IGUgPDwgZW5kbDsKI2RlZmluZSBkYmc2KGEsIGIsIGMsIGQsIGUsIGYpIGNvdXQgPDwgI2EgPDwgIjogIiA8PCBhIDw8ICIgfCAiIDw8ICNiIDw8ICI6ICIgPDwgYiA8PCAiIHwgIiA8PCAjYyA8PCAiOiAiIDw8IGMgPDwgIiB8ICIgPDwgI2QgPDwgIjogIiA8PCBkIDw8ICIgfCAiIDw8ICNlIDw8ICI6ICIgPDwgZSA8PCAiIHwgIiA8PCAjZiA8PCAiOiAiIDw8IGYgPDwgZW5kbDsKIAojZGVmaW5lIGRiZyguLi4pIGZwcmludGYoc3RkZXJyLCBfX1ZBX0FSR1NfXykKI2RlZmluZSBkYmd2KHgpIGNvdXQgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCBlbmRsCiNkZWZpbmUgZGJnYShhcnIsIGxlbikge2NvdXQgPDwgI2FyciA8PCAiID0gIjsgZm9yIChpbnQgXyA9IDA7IF8gPCBsZW47IF8rKylcCmNvdXQgPDwgYXJyW19dIDw8ICIgIjsgY291dCA8PCBlbmRsO30KI2RlZmluZSBkYmdpKGl0KSB7Y291dCA8PCAjaXQgPDwgIiA9ICI7IGZvciAoY29uc3QgYXV0byYgXyA6IGl0KVwKY291dCA8PCBfIDw8ICIgIjsgY291dCA8PCBlbmRsO30KIApjb25zdCBpbnQgbWQgPSAoaW50KSAxZTkgKyA3OwogCmlubGluZSB2b2lkIGFkZChpbnQgJmEsIGludCBiKSB7CiAgYSArPSBiOwogIGlmIChhID49IG1kKSBhIC09IG1kOwp9CiAKaW5saW5lIHZvaWQgc3ViKGludCAmYSwgaW50IGIpIHsKICBhIC09IGI7CiAgaWYgKGEgPCAwKSBhICs9IG1kOwp9CiAKaW5saW5lIGludCBtdWwoaW50IGEsIGludCBiKSB7CiAgcmV0dXJuIChpbnQpICgobG9uZyBsb25nKSBhICogYiAlIG1kKTsKfQogCmlubGluZSBpbnQgcG93ZXIoaW50IGEsIGxvbmcgbG9uZyBiKSB7CiAgaW50IHJlcyA9IDE7CiAgd2hpbGUgKGIgPiAwKSB7CiAgICBpZiAoYiAmIDEpIHsKICAgICAgcmVzID0gbXVsKHJlcywgYSk7CiAgICB9CiAgICBhID0gbXVsKGEsIGEpOwogICAgYiA+Pj0gMTsKICB9CiAgcmV0dXJuIHJlczsKfQogCiAKdm9pZCBzb2x2ZV91dGlsKGludCBtLCBpbnQgJmNudCwgaW50ICZzdW0pewogCiAgICAKfQogCmNvbnN0IGludCBLID0gMjc7CmludCBzdFtuNV1bS107CmludCBhcnJbbjVdOwppbnQgTjsKaW50IGgsYixlOwoKaW50IGxvZ2lbbjVdOwp2b2lkIHByZWNvbXB1dGVfbG9nKCl7CiAgICBsb2dpWzFdID0gMDsKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IG41OyBpKyspCiAgICAgICAgbG9naVtpXSA9IGxvZ2lbaS8yXSArIDE7Cn0KCgppbnQgcmFuZ2Vfc3VtKGludCBMLCBpbnQgUil7CiAgICBsb25nIGxvbmcgc3VtID0gMDsKICAgIGZvciAoaW50IGogPSBLOyBqID49IDA7IGotLSkgewogICAgICAgIGlmICgoMSA8PCBqKSA8PSBSIC0gTCArIDEpIHsKICAgICAgICAgICAgc3VtICs9IHN0W0xdW2pdOwogICAgICAgICAgICBMICs9IDEgPDwgajsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gc3VtOwp9IAoKCnZvaWQgUk1RKCl7ICAKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspCiAgICAgICAgc3RbaV1bMF0gPSBhcnJbaV07CiAgICAKICAgIGZvciAoaW50IGogPSAxOyBqIDw9IEs7IGorKykKICAgICAgICBmb3IgKGludCBpID0gMDsgaSArICgxIDw8IGopIDw9IE47IGkrKykKICAgICAgICAgICAgc3RbaV1bal0gPSBtaW4oc3RbaV1bai0xXSwgc3RbaSArICgxIDw8IChqIC0gMSkpXVtqIC0gMV0pOwogICAgCn0KCmludCBhbnMgPSAwOwppbnQgUk1RdXRpbChpbnQgTCwgaW50IFIpewogICAgaW50IGogPSBsb2dpW1IgLSBMICsgMV07CiAgICBpbnQgbWF4aSA9IG1pbihzdFtMXVtqXSwgc3RbUiAtICgxIDw8IGopICsgMV1bal0pOwogICAgcmV0dXJuIG1heGk7Cn0KIAp2b2lkIHNvbHZlKCl7CiAgICB3aGlsZShjaW4+Pk4+Pmg+PmI+PmUpewogICAgICAgIC8vIGNvdXQ8PE48PGg8PGI8PGU8PGVuZGw7CiAgICAgICAgaW50IG4gPSBOOwogICAgICAgIHJlcChpLDAsTi0xKWNpbj4+YXJyW2ldOwogICAgICAgIC8vIGRiZ2EoYXJyLCBOKTsKICAgICAgICBiLS07ZS0tOwogICAgICAgIFJNUSgpOwogICAgICAgIC8vIGRiZ3YobCk7ZGJndihyKTsKICAgICAgICAvLyBpbnQgYnJyW241XTsKICAgICAgICB2ZWN0b3I8aW50PiBicnIobiwwKTsKICAgICAgICAvLyBtZW1zZXQoYnJyLCAxLCBzaXplb2YoYnJyKSk7CiAgICAgICAgZm9yKGludCBpPWI7aTw9ZTspewogICAgICAgICAgICBmb3IoaW50IGo9aSsxO2o8PWU7aisrKXsKICAgICAgICAgICAgICAgIGlmKGkrMTw9ZSBhbmQgYXJyW2ldPT1hcnJbaSsxXSl7CiAgICAgICAgICAgICAgICAgICAgYnJyW2ldID0gMTsKICAgICAgICAgICAgICAgICAgICBicnJbaSsxXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgaSs9MjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKFJNUXV0aWwoaSsxLGopPGFycltpXSl7CiAgICAgICAgICAgICAgICAgICAgLy8gY291dDw8IiBsb29wMSAiOwogICAgICAgICAgICAgICAgICAgIGJycltpXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgLy8gZGJndihpKTtkYmd2KGopO2RiZ3Yoai1pKTsKICAgICAgICAgICAgICAgICAgICBpKz1qLWk7CiAgICAgICAgICAgICAgICAgICAgLy8gZGJndihpKTtkYmd2KGopO2RiZ3Yoai1pKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgLy8gY291dDw8IiBsb29wMiAiOwogICAgICAgICAgICAgICAgICAgIC8vIGRiZ3YoaSk7ZGJndihqKTtkYmd2KGotaSk7CiAgICAgICAgICAgICAgICAgICAgYnJyW2ldID0gai1pKzE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihqPT1lKWkrPWotaSsxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGRiZ2koYnJyKTsKICAgICAgICB9CiAgICAgICAgcmVwKGksYixlKXsKICAgICAgICAgICAgY291dDw8YnJyW2ldPDwiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PCJcbiI7CiAgICB9Cn0KIApzaWduZWQgbWFpbigpCnsKICAgIEZBU1Q7IEZJWEVEOyBSQU5ET007CiAgICBpbnQgdD0xOwogICAgcHJlY29tcHV0ZV9sb2coKTsKICAgIC8vIGNpbj4+dDsKICAgIC8vIHRpbWVfdCB0aW1lX3QxLCB0aW1lX3QyOwogICAgLy8gdGltZV90MSA9IGNsb2NrKCk7CiAgICB3aGlsZSh0LS0pCiAgICAgICAgc29sdmUoKTsKIAogICAgLy8gdGltZV90MiA9IGNsb2NrKCk7CiAgICAvLyBjb3V0IDw8ICJ0aW1lIHRha2VuIDoiIDw8IHRpbWVfdDIgLSB0aW1lX3QxIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfSA=