#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;
int countSmallest = 0, countLargest = 0;
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)countLargest++;
if(minLen == smallest)countSmallest++;
if(maxLen > largest){
largest = maxLen;
countLargest = 1;
}
if(minLen < smallest){
smallest = minLen;
countSmallest = 1;
}
}
if(firstOccr.find(currSum) == firstOccr.end())firstOccr[currSum] = i;
lastOccr[currSum] = i;
}
cout<<largest<<" "<<countLargest<<endl;
cout<<smallest<<" "<<countSmallest;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBuLGs7CgljaW4+Pm4+Pms7CgkKCXZlY3RvcjxpbnQ+IG51bWJlcnMobik7CgkKCWZvcihhdXRvJiBudW1iZXI6IG51bWJlcnMpewoJCWNpbj4+bnVtYmVyOwoJfQoJCglpbnQgc21hbGxlc3QgPSBJTlRfTUFYLCBsYXJnZXN0ID0gSU5UX01JTjsKCWludCBjb3VudFNtYWxsZXN0ID0gMCwgY291bnRMYXJnZXN0ID0gMDsKCQoJdW5vcmRlcmVkX21hcDxpbnQsaW50PiBmaXJzdE9jY3IsIGxhc3RPY2NyOwoJCglmaXJzdE9jY3JbMF0gPSAtMTsKCWxhc3RPY2NyWzBdID0gLTE7CgkKCWludCBjdXJyU3VtID0gMDsKCQoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQljdXJyU3VtICs9IG51bWJlcnNbaV07CgkJCgkJaWYoZmlyc3RPY2NyLmZpbmQoY3VyclN1bSAtIGspICE9IGZpcnN0T2Njci5lbmQoKSl7CgkJCWludCBtaW5MZW4gPSBpIC0gbGFzdE9jY3JbY3VyclN1bSAtIGtdOwoJCQlpbnQgbWF4TGVuID0gaSAtIGZpcnN0T2NjcltjdXJyU3VtIC0ga107CgkJCQoJCQlpZihtYXhMZW4gPT0gbGFyZ2VzdCljb3VudExhcmdlc3QrKzsKCQkJaWYobWluTGVuID09IHNtYWxsZXN0KWNvdW50U21hbGxlc3QrKzsKCQkJCgkJCWlmKG1heExlbiA+IGxhcmdlc3QpewoJCQkJbGFyZ2VzdCA9IG1heExlbjsKCQkJCWNvdW50TGFyZ2VzdCA9IDE7CgkJCX0gCgkJCQoJCQlpZihtaW5MZW4gPCBzbWFsbGVzdCl7CgkJCQlzbWFsbGVzdCA9IG1pbkxlbjsKCQkJCWNvdW50U21hbGxlc3QgPSAxOwoJCQl9IAoJCQkKCQl9CgkJCgkJaWYoZmlyc3RPY2NyLmZpbmQoY3VyclN1bSkgPT0gZmlyc3RPY2NyLmVuZCgpKWZpcnN0T2NjcltjdXJyU3VtXSA9IGk7CgkJCgkJbGFzdE9jY3JbY3VyclN1bV0gPSBpOwoJCQoJfQoJCgljb3V0PDxsYXJnZXN0PDwiICI8PGNvdW50TGFyZ2VzdDw8ZW5kbDsKCWNvdXQ8PHNtYWxsZXN0PDwiICI8PGNvdW50U21hbGxlc3Q7CgkKCXJldHVybiAwOwp9