// Find the count. of subarray of shortest length whose sum==k
// A = {10,5,2,7,1,9,8,7} k = 15
#include<bits/stdc++.h>
using namespace std;
#define ll long long
void solve(){
int n,k,s=0,mn,numberOfMin=0;
cin>>n>>k;
mn=n;
vector<int>v(n);
for(int &i:v)cin>>i;
unordered_map<int,int>mp;
for(int i=0;i<n;i++){
s+=v[i];
if(s==k){
if(mn==i+1)numberOfMin++;
else if(mn>i+1){
numberOfMin=1;
mn=i+1;
}
}
int targ=s-k;
if(mp.count(targ)){
if(mn==i-mp[targ])numberOfMin++;
else if(mn>i-mp[targ]){
numberOfMin=1;
mn=i-mp[targ];
}
}
mp[s]=i;
}
cout<<"Min length is "<<mn<<" and min len subarrays are "<<numberOfMin<<"\n";
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
return 0;
}
Ly8gRmluZCB0aGUgY291bnQuIG9mIHN1YmFycmF5IG9mIHNob3J0ZXN0IGxlbmd0aCB3aG9zZSBzdW09PWsgCi8vIEEgPSB7MTAsNSwyLDcsMSw5LDgsN30gICBrID0gMTUKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCgp2b2lkIHNvbHZlKCl7CiAgICBpbnQgbixrLHM9MCxtbixudW1iZXJPZk1pbj0wOwogICAgY2luPj5uPj5rOwogICAgbW49bjsKICAgIHZlY3RvcjxpbnQ+dihuKTsKICAgIGZvcihpbnQgJmk6diljaW4+Pmk7CiAgICB1bm9yZGVyZWRfbWFwPGludCxpbnQ+bXA7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBzKz12W2ldOwogICAgICAgIGlmKHM9PWspewogICAgICAgICAgICBpZihtbj09aSsxKW51bWJlck9mTWluKys7CiAgICAgICAgICAgIGVsc2UgaWYobW4+aSsxKXsKICAgICAgICAgICAgICAgIG51bWJlck9mTWluPTE7CiAgICAgICAgICAgICAgICBtbj1pKzE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaW50IHRhcmc9cy1rOwogICAgICAgIGlmKG1wLmNvdW50KHRhcmcpKXsKICAgICAgICAgICAgaWYobW49PWktbXBbdGFyZ10pbnVtYmVyT2ZNaW4rKzsKICAgICAgICAgICAgZWxzZSBpZihtbj5pLW1wW3RhcmddKXsKICAgICAgICAgICAgICAgIG51bWJlck9mTWluPTE7CiAgICAgICAgICAgICAgICBtbj1pLW1wW3RhcmddOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG1wW3NdPWk7CiAgICB9CiAgICBjb3V0PDwiTWluIGxlbmd0aCBpcyAiPDxtbjw8IiBhbmQgbWluIGxlbiBzdWJhcnJheXMgYXJlICI8PG51bWJlck9mTWluPDwiXG4iOwp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9