#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// using namespace __gnu_pbds;
#define ll long long
#define ld long double
#define ln '\n'
const ll MOD = 1e9 + 7;
// fixed << setprecision()
// bool cmp(pair<int, int>& a,
// pair<int , int>& b)
// {
// return a.second < b.second;
// }
// template <class T>
// using ordered_set = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
// template <class type1>
// using ordered_multiset = tree<type1, null_type, less_equal<type1>, rb_tree_tag, tree_order_statistics_node_update>;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// 7 20
// 2 6 4 3 6 8 9
int n;
ll s;
cin>>n>>s;
ll count = 0;
ll arr[n];
int l = 0;
ll sum = 0;
for (int i = 0; i < n; i++)
{
cin>>arr[i];
sum += arr[i];
while (sum >= s && l <= i){
count += (n-i);
sum -= arr[l];
l++;
}
}
cout<<count<<ln;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ci8vICNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KLy8gI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vIHVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgbG4gJ1xuJwpjb25zdCBsbCBNT0QgPSAxZTkgKyA3OwovLyBmaXhlZCA8PCBzZXRwcmVjaXNpb24oKQoKLy8gYm9vbCBjbXAocGFpcjxpbnQsIGludD4mIGEsCi8vICAgICAgICAgIHBhaXI8aW50ICwgaW50PiYgYikKLy8gewovLyAgICAgcmV0dXJuIGEuc2Vjb25kIDwgYi5zZWNvbmQ7Ci8vIH0KCi8vIHRlbXBsYXRlIDxjbGFzcyBUPgovLyB1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBzdGQ6Omxlc3M8VD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+OwoKLy8gdGVtcGxhdGUgPGNsYXNzIHR5cGUxPgovLyB1c2luZyBvcmRlcmVkX211bHRpc2V0ID0gdHJlZTx0eXBlMSwgbnVsbF90eXBlLCBsZXNzX2VxdWFsPHR5cGUxPiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CgoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBjb3V0LnRpZShOVUxMKTsKCi8vICAgICA3IDIwCi8vIDIgNiA0IDMgNiA4IDkKCiAgaW50IG47CiAgbGwgczsKICBjaW4+Pm4+PnM7CiAgbGwgY291bnQgPSAwOwogIGxsIGFycltuXTsKICBpbnQgbCA9IDA7CiAgbGwgc3VtID0gMDsKICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICB7CiAgICBjaW4+PmFycltpXTsKICAgIHN1bSArPSBhcnJbaV07CiAgICB3aGlsZSAoc3VtID49IHMgJiYgbCA8PSBpKXsKICAgIGNvdW50ICs9IChuLWkpOwogICAgc3VtIC09IGFycltsXTsKICAgIGwrKzsKICAgIH0gICAKICB9CiAgICAKICBjb3V0PDxjb3VudDw8bG47CiAgIAogICAgcmV0dXJuIDA7Cn0KCgo=