#include <bits/stdc++.h>
using namespace std;
int solve(vector<int>& a , int k){
int n = a.size();
int maxLen = INT_MIN;
unordered_map<int,int>mpp;
mpp[a[0]] = 0;
for(int j=1;j<n;j++){
int target = k - a[j];
if(mpp.count(target)){
int len = j-mpp[target]+1;
maxLen = max(maxLen,len);
}
if(mpp.find(a[j])==mpp.end())
mpp[a[j]] = j;
}
return (maxLen==INT_MIN)? -1 : maxLen;
}
int main() {
int n;
cin>>n;
vector<int>a(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
int k;
cin>>k;
cout<<solve(a,k);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgc29sdmUodmVjdG9yPGludD4mIGEgLCBpbnQgayl7CglpbnQgbiA9IGEuc2l6ZSgpOwoJaW50IG1heExlbiA9IElOVF9NSU47Cgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+bXBwOwoJbXBwW2FbMF1dID0gMDsKCWZvcihpbnQgaj0xO2o8bjtqKyspewoJCWludCB0YXJnZXQgPSBrIC0gYVtqXTsKCQlpZihtcHAuY291bnQodGFyZ2V0KSl7CgkJCWludCBsZW4gPSBqLW1wcFt0YXJnZXRdKzE7CgkJCW1heExlbiA9IG1heChtYXhMZW4sbGVuKTsKCQl9CgkJaWYobXBwLmZpbmQoYVtqXSk9PW1wcC5lbmQoKSkKCQltcHBbYVtqXV0gPSBqOwoJfQoJcmV0dXJuIChtYXhMZW49PUlOVF9NSU4pPyAtMSA6IG1heExlbjsKfQoKaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbj4+bjsKCXZlY3RvcjxpbnQ+YShuKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWNpbj4+YVtpXTsKCX0KCWludCBrOwoJY2luPj5rOwoJCgljb3V0PDxzb2x2ZShhLGspOwoJcmV0dXJuIDA7Cn0=