#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;
}
