#include <iostream>
#include <algorithm>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef pair<int, int> pii;
typedef tree<
pii,
null_type,
less<pii>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_tree;
int main(){
int N, M;
cin >> N >> M;
vector<int> a;
a.push_back(0);
ordered_tree H;
for (int i=0;i<N;i++){
int x;
cin >> x;
a.push_back(x);
}
int p = 0;
int s = 0;
for (auto i : a){
s+=i;
H.insert(pii(s,p++));
}
int res = 0;
s = 0;
for (auto i : a){
s += i;
auto q = lower_bound(H.begin(), H.end(), pii(s - M,-1));
res += H.order_of_key(*q);
}
cout << res<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKCgp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKCnR5cGVkZWYgdHJlZTwKcGlpLApudWxsX3R5cGUsCmxlc3M8cGlpPiwKcmJfdHJlZV90YWcsCnRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4Kb3JkZXJlZF90cmVlOwoKCmludCBtYWluKCl7CmludCBOLCBNOwpjaW4gPj4gTiA+PiBNOwp2ZWN0b3I8aW50PiBhOwphLnB1c2hfYmFjaygwKTsKb3JkZXJlZF90cmVlIEg7CmZvciAoaW50IGk9MDtpPE47aSsrKXsKICAgIGludCB4OwogICAgY2luID4+IHg7CiAgICBhLnB1c2hfYmFjayh4KTsKfQppbnQgcCA9IDA7CmludCBzID0gMDsKZm9yIChhdXRvIGkgOiBhKXsKICAgIHMrPWk7CiAgICBILmluc2VydChwaWkocyxwKyspKTsKfQppbnQgcmVzID0gMDsKcyA9IDA7CmZvciAoYXV0byBpIDogYSl7CiAgICBzICs9IGk7CiAgICBhdXRvIHEgPSBsb3dlcl9ib3VuZChILmJlZ2luKCksIEguZW5kKCksIHBpaShzIC0gTSwtMSkpOwogICAgcmVzICs9IEgub3JkZXJfb2Zfa2V5KCpxKTsKfQpjb3V0IDw8IHJlczw8ZW5kbDsKfQo=