#include <bits/stdc++.h>
using namespace std;
int getCount(vector<int> &arr,int L,int R){
int mini=1e9;
int i=0;
int j=0;
unordered_map<int,int>mp;
int n=arr.size();
while(i<n && j<n){
if(arr[j]>=L && arr[j]<=R){
mp[arr[j]]++;
}
if(mp.size()==abs(R-L+1)){
int len=abs(j-i+1);
mini=min(len,mini);
if(arr[i]>=L && arr[i]<=R){
mp[arr[i]]--;
if(mp[arr[i]]==0){
mp.erase(arr[i]);
}
}
i++;
if(arr[j]>=L && arr[j]<=R){
mp[arr[j]]--;
}
}
else{
j++;
}
}
if(mini==1e9){
return -1;
}
return mini;
}
int main() {
// your code goes here
int n;
cin>>n;
vector<int>arr(n);
for(int i=0;i<n;i++){
cin>>arr[i];
}
int L;
cin>>L;
int R;
cin>>R;
cout<<"The smallest valid subarray in the range of L to R is:"<<getCount(arr,L,R);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBnZXRDb3VudCh2ZWN0b3I8aW50PiAmYXJyLGludCBMLGludCBSKXsKCWludCBtaW5pPTFlOTsKCWludCBpPTA7CglpbnQgaj0wOwoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pm1wOwoJaW50IG49YXJyLnNpemUoKTsKCXdoaWxlKGk8biAmJiBqPG4pewoJCWlmKGFycltqXT49TCAmJiBhcnJbal08PVIpewoJCQltcFthcnJbal1dKys7CgkJfQoJCWlmKG1wLnNpemUoKT09YWJzKFItTCsxKSl7CgkJCWludCBsZW49YWJzKGotaSsxKTsKCQkJbWluaT1taW4obGVuLG1pbmkpOwoJCQlpZihhcnJbaV0+PUwgJiYgYXJyW2ldPD1SKXsKCQkJCW1wW2FycltpXV0tLTsKCQkJCWlmKG1wW2FycltpXV09PTApewoJCQkJCW1wLmVyYXNlKGFycltpXSk7CgkJCQl9CgkJCX0KCQkJaSsrOwoJCQlpZihhcnJbal0+PUwgJiYgYXJyW2pdPD1SKXsKCQkJCW1wW2FycltqXV0tLTsKIAoJCQl9CiAKCQl9CgkJZWxzZXsKCQkJaisrOwoJCX0KCX0KCWlmKG1pbmk9PTFlOSl7CgkJcmV0dXJuIC0xOwoJfQoJcmV0dXJuIG1pbmk7Cn0KIAppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuOwoJY2luPj5uOwoJdmVjdG9yPGludD5hcnIobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PmFycltpXTsKCX0KCWludCBMOwoJY2luPj5MOwoJaW50IFI7CgljaW4+PlI7Cgljb3V0PDwiVGhlIHNtYWxsZXN0IHZhbGlkIHN1YmFycmF5IGluIHRoZSByYW5nZSBvZiBMICB0byBSIGlzOiI8PGdldENvdW50KGFycixMLFIpOwogCglyZXR1cm4gMDsKfQ==