#include <bits/stdc++.h>
using namespace std;

int solve(vector<int>& a , int k){
	int n = a.size();
	int minLen = INT_MAX;
	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;
			minLen = min(minLen,len);
		}
		mpp[a[j]] = j;
	}
	return (minLen==INT_MAX)? -1 : minLen;
}

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;
}