#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
int a[n];
for(int i=0; i<n; i++)
{
cin>>a[i];
}
int preSum[n+1]= {0};
for(int i=1; i<=n; i++)
{
preSum[i] = preSum[i-1]+ a[i-1]; // 0 3 3 4 7 5 7 // instead of prefix sum array we can get this by just maintaining a currSum var
}
int curSum=0;
unordered_map<int,int>mp;
int maxlen=0, minlen= n+1;
mp[0]=0;
// for(int i=0; i<n; i++)
// {
// curSum+= a[i];
// if(mp.find(curSum-k)!= mp.end())
// {
// maxlen= max(maxlen, i- mp[curSum-k] +1 );
// }
// if(mp.find(curSum)==mp.end())
// {
// mp[curSum]= i;
// }
// }
for(int i=1; i<=n; i++)
{
if(mp.find(preSum[i]-k)!=mp.end())
{
maxlen = max(maxlen,(i-mp[preSum[i]-k]));
}
if(mp.find(preSum[i])==mp.end())
{
mp[preSum[i]]= i;
}
}
cout<<maxlen <<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICAgIGludCBuLGs7CiAgICBjaW4+Pm4+Pms7CgogICAgaW50IGFbbl07CiAgICAKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgICBjaW4+PmFbaV07CiAgICB9CiAgICAKICAgIGludCBwcmVTdW1bbisxXT0gezB9OwogICAgCiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIHByZVN1bVtpXSA9IHByZVN1bVtpLTFdKyBhW2ktMV07ICAvLyAwIDMgMyA0IDcgNSA3ICAgIC8vIGluc3RlYWQgb2YgcHJlZml4IHN1bSBhcnJheSB3ZSBjYW4gZ2V0IHRoaXMgYnkganVzdCBtYWludGFpbmluZyBhIGN1cnJTdW0gdmFyCiAgICB9CiAgICAKICAgIGludCBjdXJTdW09MDsKICAgIAogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50Pm1wOwogICAgaW50IG1heGxlbj0wLCBtaW5sZW49IG4rMTsKICAgIAogICAgbXBbMF09MDsKICAgIAogICAgLy8gZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgLy8gewogICAgLy8gCWN1clN1bSs9IGFbaV07CiAgICAJCiAgICAvLyAJaWYobXAuZmluZChjdXJTdW0taykhPSBtcC5lbmQoKSkKICAgIC8vIAl7CiAgICAvLyAJCW1heGxlbj0gbWF4KG1heGxlbiwgaS0gbXBbY3VyU3VtLWtdICsxICk7CiAgICAvLyAJfQogICAgCQogICAgLy8gCWlmKG1wLmZpbmQoY3VyU3VtKT09bXAuZW5kKCkpCiAgICAvLyAJewogICAgLy8gCQltcFtjdXJTdW1dPSBpOwogICAgLy8gCX0KICAgIC8vIH0KICAgCiAgIAogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBpZihtcC5maW5kKHByZVN1bVtpXS1rKSE9bXAuZW5kKCkpCiAgICAgICAgewogICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgICBtYXhsZW4gPSBtYXgobWF4bGVuLChpLW1wW3ByZVN1bVtpXS1rXSkpOwogICAgICAgICAgCiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmKG1wLmZpbmQocHJlU3VtW2ldKT09bXAuZW5kKCkpCiAgICAgICAgewogICAgICAgICAgICAgbXBbcHJlU3VtW2ldXT0gaTsKICAgICAgICB9CiAgICAgICAKICAgIH0KICAgIAogICAgY291dDw8bWF4bGVuIDw8ZW5kbDsKICAgIAogICAgCgogICAgCn0=