#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define pb emplace_back
int minOperations(vector<int>& nums, int x) {
int ans=-1;
int l=0, r=0, currSum=0;
int n=nums.size();
int total=accumulate(nums.begin(), nums.end(), 0);
if(total<x){
return -1;
}
while(r<n){
if(currSum>(total-x)){
while(currSum>(total-x)){
currSum-=nums[l];
l++;
}
}
if(currSum==(total-x)){
ans=(ans==-1?(r-l):max(ans, (r-l)));
currSum-=nums[l];
l++;
}
currSum+=nums[r];
r++;
}
while(currSum>(total-x)){
currSum-=nums[l];
l++;
}
if(currSum==(total-x)){
ans=(ans==-1?(r-l):max(ans, (r-l)));
}
return (ans==-1?-1:(n-ans));
}
signed main()
{
int n,i,money;
cin>>n;
vector<int>a(n,0),v;
for(i=0;i<n;i++)
cin>>a[i];
cin>>money;
cout<<minOperations(a, money)<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyBpbnQKI2RlZmluZSBwYiBlbXBsYWNlX2JhY2sgCgoKCmludCBtaW5PcGVyYXRpb25zKHZlY3RvcjxpbnQ+JiBudW1zLCBpbnQgeCkgewogICAgICAgIGludCBhbnM9LTE7CiAgICAgICAgaW50IGw9MCwgcj0wLCBjdXJyU3VtPTA7CiAgICAgICAgaW50IG49bnVtcy5zaXplKCk7CiAgICAgICAgaW50IHRvdGFsPWFjY3VtdWxhdGUobnVtcy5iZWdpbigpLCBudW1zLmVuZCgpLCAwKTsKICAgICAgICBpZih0b3RhbDx4KXsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICB3aGlsZShyPG4pewogICAgICAgICAgICBpZihjdXJyU3VtPih0b3RhbC14KSl7CiAgICAgICAgICAgICAgICB3aGlsZShjdXJyU3VtPih0b3RhbC14KSl7CiAgICAgICAgICAgICAgICAgICAgY3VyclN1bS09bnVtc1tsXTsKICAgICAgICAgICAgICAgICAgICBsKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGN1cnJTdW09PSh0b3RhbC14KSl7CiAgICAgICAgICAgICAgICBhbnM9KGFucz09LTE/KHItbCk6bWF4KGFucywgKHItbCkpKTsKICAgICAgICAgICAgICAgIGN1cnJTdW0tPW51bXNbbF07CiAgICAgICAgICAgICAgICBsKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGN1cnJTdW0rPW51bXNbcl07CiAgICAgICAgICAgIHIrKzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgd2hpbGUoY3VyclN1bT4odG90YWwteCkpewogICAgICAgICAgICBjdXJyU3VtLT1udW1zW2xdOwogICAgICAgICAgICBsKys7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmKGN1cnJTdW09PSh0b3RhbC14KSl7CiAgICAgICAgICAgIGFucz0oYW5zPT0tMT8oci1sKTptYXgoYW5zLCAoci1sKSkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gKGFucz09LTE/LTE6KG4tYW5zKSk7CiAgICB9CgoKc2lnbmVkIG1haW4oKQogewoKICAgICAgICAgICAgICAgIGludCAgbixpLG1vbmV5OyAKICAgICAgICAgICAgICAgIGNpbj4+bjsKICAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+YShuLDApLHY7CgogICAgICAgICAgICAgICAgZm9yKGk9MDtpPG47aSsrKQogICAgICAgICAgICAgICAgICAgIGNpbj4+YVtpXTsKCiAgICAgICAgICAgICAgICAgIGNpbj4+bW9uZXk7CgogICAgICAgICBjb3V0PDxtaW5PcGVyYXRpb25zKGEsIG1vbmV5KTw8ZW5kbDsKCn0=