#include <bits/stdc++.h>
using namespace std;
 
int main() {
    int n;
    cin >> n;
 
    vector<long long> a(n);
 
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
 long long k;
 cin>>k;
 
 
 unordered_map<int, int>mp1;
 unordered_map<int, int>mp2;
 
 //mp1[0]=0;
 //mp2[0]=0;
 
 int psum=0;
 int maxlen=0;
 int minlen=INT_MAX;
 
 for(int j=0;j<n;j++){
 	 psum = psum+a[j];
 	 int x = psum-k;
 	  if (mp1.find(x) != mp1.end()) {
            int i = mp1[x] + 1;
            int length = j - i + 1;

            maxlen = max(length, maxlen);
        }
 	 
 	    if (mp2.find(x) != mp2.end()) {
            int i = mp2[x] + 1;
            int length = j - i + 1;

            minlen = min(length, minlen);
        }
 	 
 
 	 if(mp1.find(psum)==mp1.end())
 	 mp1[psum]=j;
 	 mp2[psum]=j;
 	 
 	 
 	 
 }
 cout<<maxlen<<""<<minlen;

return 0;
}
 