#include <bits/stdc++.h>
using namespace std;
int count(int A[],int num,int k){
unordered_map<int,int>m;
// m[0]=1;
int count=0;
int sum=0;
int maxi=-100;
for(int i=0;i<num;i++){
sum+=A[i];
int x=sum-k;
if(sum==k){
if(maxi<i+1){
maxi=i+1;
count=1;
}
else if(maxi==i+1){
count++;
}
}
if(m.find(x)!=m.end()){
int dist=m[x]+1;
int actual=i-dist+1;
if(actual>maxi){
maxi=actual;
count=1;
}
else if(actual==maxi){
count++;
}
}
if(m.find(sum)==m.end()){
m[sum]=i;
}
}
return count;
}
int main() {
// your code goes here
int n;
cin>>n;
int k;
cin>>k;
int A[n];
for(int i=0;i<n;i++){
cin>>A[i];
}
cout<<"The count of subarrays with longest length whose sum==k is:"<<count(A,n,k);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBjb3VudChpbnQgQVtdLGludCBudW0saW50IGspewoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pm07CgkvLyBtWzBdPTE7CglpbnQgY291bnQ9MDsKCWludCBzdW09MDsKCWludCBtYXhpPS0xMDA7Cglmb3IoaW50IGk9MDtpPG51bTtpKyspewoJCXN1bSs9QVtpXTsKCQlpbnQgeD1zdW0tazsKCQlpZihzdW09PWspewoJCQlpZihtYXhpPGkrMSl7CgkJCQltYXhpPWkrMTsKCQkJCWNvdW50PTE7CgkJCX0KCQkJZWxzZSBpZihtYXhpPT1pKzEpewoJCQkJY291bnQrKzsKCQkJfQoJCX0KCQlpZihtLmZpbmQoeCkhPW0uZW5kKCkpewoJCQlpbnQgZGlzdD1tW3hdKzE7CgkJCWludCBhY3R1YWw9aS1kaXN0KzE7CgkJCWlmKGFjdHVhbD5tYXhpKXsKCQkJCW1heGk9YWN0dWFsOwoJCQkJY291bnQ9MTsKCQkJfQoJCQllbHNlIGlmKGFjdHVhbD09bWF4aSl7CgkJCQljb3VudCsrOwoJCQl9CiAKCQl9CgkJaWYobS5maW5kKHN1bSk9PW0uZW5kKCkpewoJCQltW3N1bV09aTsKCQl9CiAKCX0KCXJldHVybiBjb3VudDsKfQogCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IG47CgljaW4+Pm47CglpbnQgazsKCWNpbj4+azsKCWludCBBW25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJY2luPj5BW2ldOwoJfQoJY291dDw8IlRoZSBjb3VudCBvZiBzdWJhcnJheXMgd2l0aCBsb25nZXN0IGxlbmd0aCB3aG9zZSBzdW09PWsgaXM6Ijw8Y291bnQoQSxuLGspOwoJcmV0dXJuIDA7Cn0=