#include <bits/stdc++.h>
using namespace std;
int bit[200005];
void update(long long int x) {
  while (x < 200005) {
    bit[x] += 1;
    if (x == 0) break;
    x += x & (-x);
  }
}
long long int query(long long int x) {
  long long int ans = 0;
  while (x >= 0) {
    ans += bit[x];
    if (x == 0) break;
    x -= x & (-x);
  }
  return ans;
}
int main() {
  long long int n, t;
  cin >> n >> t;
  vector<long long int> v(n);
  for (long long int i = 0; i < n; i++) {
    cin >> v[i];
    if (i) v[i] += v[i - 1];
  }
  vector<long long int> v2 = v;
  sort(v.begin(), v.end());
  long long int ans = 0;
  for (long long int i = (n - 1); i >= 0; i--) {
    int pos = lower_bound(v.begin(), v.end(), v2[i] + t) - v.begin();
    ans += query(pos - 1);
    update(lower_bound(v.begin(), v.end(), v2[i]) - v.begin());
  }
  ans += query(lower_bound(v.begin(), v.end(), t) - v.begin() - 1);
  cout << ans << endl;
}
