#include<bits/stdc++.h>
using namespace std;
int maximum(vector<int>&v,int k){
int sum=0;
int ans=0;
unordered_map<int,int>m;
for(int i=0;i<v.size();i++){
sum+=v[i];
if(m.find(sum-k)!=m.end()){
ans=max(ans,i-m[sum-k]);
}
if(sum==k){
ans=max(ans,i+1);
}
if(m.find(sum)==m.end()){
m[sum]=i;
}
}
return ans;
}
int minimum(vector<int>&v,int k){
int sum=0;
int ans=INT_MAX;
unordered_map<int,int>m;
for(int i=0;i<v.size();i++){
sum+=v[i];
if(m.find(sum-k)!=m.end()){
ans=min(ans,i-m[sum-k]);
}
if(sum==k){
ans=min(ans,i+1);
}
m[sum]=i;
}
return ans;
}
int count(int s,vector<int>&v,int k){
if(s<1 ||s>v.size())return 0;
int ans=0;
int sum=0;
int j=s-1;
int i=0;
for(int a=j;a>=i;a--)sum+=v[a];
while(j<v.size()){
if(sum==k)ans++;
j++;
sum-=v[i];
if(j<v.size())sum+=v[j];
i++;
}
return ans;
}
int main(){
int n;cin>>n;
int k;cin>>k;
vector<int>v(n);
for(int i=0;i<n;i++)cin>>v[i];
cout<<"Max Count:"<<count(maximum(v,k),v,k)<<endl;
cout<<"Min Count:"<<count(minimum(v,k),v,k)<<endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1heGltdW0odmVjdG9yPGludD4mdixpbnQgayl7CiAgICBpbnQgc3VtPTA7CiAgICBpbnQgYW5zPTA7CiAgICB1bm9yZGVyZWRfbWFwPGludCxpbnQ+bTsKICAgIGZvcihpbnQgaT0wO2k8di5zaXplKCk7aSsrKXsKICAgICAgICBzdW0rPXZbaV07CiAgICAgICAgaWYobS5maW5kKHN1bS1rKSE9bS5lbmQoKSl7CiAgICAgICAgICAgIGFucz1tYXgoYW5zLGktbVtzdW0ta10pOwogICAgICAgIH0KICAgICAgICBpZihzdW09PWspewogICAgICAgICAgICBhbnM9bWF4KGFucyxpKzEpOwogICAgICAgIH0KICAgICAgICBpZihtLmZpbmQoc3VtKT09bS5lbmQoKSl7CiAgICAgICAgICAgIG1bc3VtXT1pOwogICAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gYW5zOwp9CmludCBtaW5pbXVtKHZlY3RvcjxpbnQ+JnYsaW50IGspewogICAgaW50IHN1bT0wOwogICAgaW50IGFucz1JTlRfTUFYOwogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50Pm07CiAgICBmb3IoaW50IGk9MDtpPHYuc2l6ZSgpO2krKyl7CiAgICAgICAgc3VtKz12W2ldOwogICAgICAgIGlmKG0uZmluZChzdW0taykhPW0uZW5kKCkpewogICAgICAgICAgICBhbnM9bWluKGFucyxpLW1bc3VtLWtdKTsKICAgICAgICB9CiAgICAgICAgaWYoc3VtPT1rKXsKICAgICAgICAgICAgYW5zPW1pbihhbnMsaSsxKTsKICAgICAgICB9CgogICAgICAgICAgICBtW3N1bV09aTsKICAgICAgICAKCiAgICB9CiAgICByZXR1cm4gYW5zOwp9CmludCBjb3VudChpbnQgcyx2ZWN0b3I8aW50PiZ2LGludCBrKXsKICAgIGlmKHM8MSB8fHM+di5zaXplKCkpcmV0dXJuIDA7CiAgICBpbnQgYW5zPTA7CiAgICBpbnQgc3VtPTA7CiAgICBpbnQgaj1zLTE7CiAgICBpbnQgaT0wOwogICAgZm9yKGludCBhPWo7YT49aTthLS0pc3VtKz12W2FdOwogICAgd2hpbGUoajx2LnNpemUoKSl7CiAgICAgICAgaWYoc3VtPT1rKWFucysrOwogICAgICAgIGorKzsKICAgICAgICBzdW0tPXZbaV07CiAgICAgICAgaWYoajx2LnNpemUoKSlzdW0rPXZbal07CiAgICAgICAgaSsrOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKXsKCWludCBuO2Npbj4+bjsKCWludCBrO2Npbj4+azsKCXZlY3RvcjxpbnQ+dihuKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspY2luPj52W2ldOwoJY291dDw8Ik1heCBDb3VudDoiPDxjb3VudChtYXhpbXVtKHYsayksdixrKTw8ZW5kbDsKICAgIGNvdXQ8PCJNaW4gQ291bnQ6Ijw8Y291bnQobWluaW11bSh2LGspLHYsayk8PGVuZGw7CglyZXR1cm4gMDsKfQo=