#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<algorithm>
using namespace std;
long long int r[300000], l[300000],cnt=0,mm,sum[300000];
void find(long long int s, long long int e) {
if (s == e) {
if (r[s] >= mm) cnt++;
return;
}
find(s, (s + e) / 2);
find((s + e) / 2 + 1, e);
long long int m = (s + e) / 2 + 1, i, tar = m;
for (i = m;i <= e;i++) {
while (1) {
if (tar == s) break;
if (l[i] + r[tar - 1] >= mm) tar--; else break;
}
cnt += m - tar;
}
for (i = m;i <= e;i++)l[i] += sum[m - 1] - sum[s - 1];
for (i = s;i < m;i++) r[i] += sum[e] - sum[m - 1];
sort(r + s, r + e + 1);
sort(l + s, l + e + 1);
}
int main() {
long long int n, i, j;
scanf("%lld%lld", &n, &mm);
for (i = 1;i <= n;i++) {
long long int x;
scanf("%lld", &x);
l[i] = x;
r[i] = x;
sum[i] = sum[i - 1] + x;
}
find(1, n);
printf("%lld", cnt);
return 0;
}