#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
vector<int> numbers(n);
for(auto& number: numbers){
cin>>number;
}
int smallest = INT_MAX, largest = INT_MIN;
unordered_map<int,int> firstOccr, lastOccr;
firstOccr[0] = -1;
lastOccr[0] = -1;
int currSum = 0;
for(int i=0; i<n; i++){
currSum += numbers[i];
if(firstOccr.find(currSum - k) != firstOccr.end()){
int minLen = i - lastOccr[currSum - k];
int maxLen = i - firstOccr[currSum - k];
if(maxLen > largest)largest = maxLen;
if(minLen < smallest)smallest = minLen;
}
if(firstOccr.find(currSum) == firstOccr.end())firstOccr[currSum] = i;
lastOccr[currSum] = i;
}
cout<<largest<<" "<<smallest;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuLGs7CgljaW4+Pm4+Pms7CgkKCXZlY3RvcjxpbnQ+IG51bWJlcnMobik7CgkKCWZvcihhdXRvJiBudW1iZXI6IG51bWJlcnMpewoJCWNpbj4+bnVtYmVyOwoJfQoJCglpbnQgc21hbGxlc3QgPSBJTlRfTUFYLCBsYXJnZXN0ID0gSU5UX01JTjsKCQoJdW5vcmRlcmVkX21hcDxpbnQsaW50PiBmaXJzdE9jY3IsIGxhc3RPY2NyOwoJCglmaXJzdE9jY3JbMF0gPSAtMTsKCWxhc3RPY2NyWzBdID0gLTE7CgkKCWludCBjdXJyU3VtID0gMDsKCQoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQljdXJyU3VtICs9IG51bWJlcnNbaV07CgkJCgkJaWYoZmlyc3RPY2NyLmZpbmQoY3VyclN1bSAtIGspICE9IGZpcnN0T2Njci5lbmQoKSl7CgkJCWludCBtaW5MZW4gPSBpIC0gbGFzdE9jY3JbY3VyclN1bSAtIGtdOwoJCQlpbnQgbWF4TGVuID0gaSAtIGZpcnN0T2NjcltjdXJyU3VtIC0ga107CgkJCQoJCQlpZihtYXhMZW4gPiBsYXJnZXN0KWxhcmdlc3QgPSBtYXhMZW47CgkJCWlmKG1pbkxlbiA8IHNtYWxsZXN0KXNtYWxsZXN0ID0gbWluTGVuOwoJCQkKCQl9CgkJCgkJaWYoZmlyc3RPY2NyLmZpbmQoY3VyclN1bSkgPT0gZmlyc3RPY2NyLmVuZCgpKWZpcnN0T2NjcltjdXJyU3VtXSA9IGk7CgkJCgkJbGFzdE9jY3JbY3VyclN1bV0gPSBpOwoJCQoJfQoJCgljb3V0PDxsYXJnZXN0PDwiICI8PHNtYWxsZXN0OwoJCglyZXR1cm4gMDsKfQ==