/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
Scanner sc
=new Scanner
(System.
in); int n=sc.nextInt();
int k=sc.nextInt();
int[] arr=new int[n+1];
for(int i=1;i<=n;i++){
arr[i]=sc.nextInt();
}
int[] ps=new int[n+1];
for(int i=1;i<=n;i++){
ps[i]=ps[i-1]+arr[i];
}
HashMap
<Integer,Integer
> map
=new HashMap
<>(); map.put(0,0);
int maxLen=0;
for(int i=1;i<=n;i++){
int rem=ps[i]-k;
if(map.containsKey(rem)){
maxLen
= Math.
max(maxLen, i
- map.
get(rem
)); }
if(!map.containsKey(ps[i])){
map.put(ps[i],i);
}
}
int count=0;
int i=1;
int j=1;
int sum=0;
while(j<=n){
sum+=arr[j];
if(j-i+1<maxLen) j++;
else if (j-i+1==maxLen) {
if(sum==k) count++;
sum-=arr[i];
i++;
j++;
}
}
System.
out.
println(count
+" whose length is "+maxLen
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlTY2FubmVyIHNjPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG49c2MubmV4dEludCgpOwogICAgICAgIGludCBrPXNjLm5leHRJbnQoKTsKICAgICAgICBpbnRbXSBhcnI9bmV3IGludFtuKzFdOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICAgICAgYXJyW2ldPXNjLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50W10gcHM9bmV3IGludFtuKzFdOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICAgICAgcHNbaV09cHNbaS0xXSthcnJbaV07CiAgICAgICAgfQogICAgICAgIEhhc2hNYXA8SW50ZWdlcixJbnRlZ2VyPiBtYXA9bmV3IEhhc2hNYXA8PigpOwogICAgICAgIG1hcC5wdXQoMCwwKTsKICAgICAgICBpbnQgbWF4TGVuPTA7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICBpbnQgcmVtPXBzW2ldLWs7CiAgICAgICAgICAgIGlmKG1hcC5jb250YWluc0tleShyZW0pKXsKICAgICAgICAgICAgICAgIG1heExlbiA9IE1hdGgubWF4KG1heExlbiwgaSAtIG1hcC5nZXQocmVtKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIW1hcC5jb250YWluc0tleShwc1tpXSkpewogICAgICAgICAgICAgICAgbWFwLnB1dChwc1tpXSxpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpbnQgY291bnQ9MDsKICAgICAgICBpbnQgaT0xOwogICAgICAgIGludCBqPTE7CiAgICAgICAgaW50IHN1bT0wOwogICAgICAgIHdoaWxlKGo8PW4pewogICAgICAgICAgICBzdW0rPWFycltqXTsKICAgICAgICAgICAgaWYoai1pKzE8bWF4TGVuKSBqKys7CiAgICAgICAgICAgIGVsc2UgaWYgKGotaSsxPT1tYXhMZW4pIHsKICAgICAgICAgICAgICAgIGlmKHN1bT09aykgY291bnQrKzsKICAgICAgICAgICAgICAgIHN1bS09YXJyW2ldOwogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudCsiIHdob3NlIGxlbmd0aCBpcyAiK21heExlbik7Cgl9Cn0=