#include <bits/stdc++.h>
#define VuDucNam ios_base::sync_with_stdio(false);
#define Lop9a6 cin.tie(NULL);
#define THCSPhamVanDong cout.tie(NULL);
#define ll long long
#define el cout << '\n'
#define sz(a) (ll)a.size()
#define all(a) a.begin(), a.end()
#define file(name)                         \
    if (fopen(name ".inp", "r"))           \
    {                                      \
        freopen(name ".inp", "r", stdin);  \
        freopen(name ".out", "w", stdout); \
    }
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"

using namespace std;

const int N5 = 1e5 + 5;

int n;
ll s, pre[N5], cnt;
map<ll, int> freq; // Lưu tần suất các giá trị pre[j]

void solve()
{
    cin >> n >> s;

    for (int i = 1; i <= n; ++i)
    {
        ll x;
        cin >> x;
        pre[i] = pre[i - 1] + x;
    }

    // Thêm pre[0] = 0 vào map
    freq[0]++;

    for (int i = 1; i <= n; ++i)
    {
        // Tìm số phần tử nhỏ hơn pre[i] - s
        auto it1 = freq.lower_bound(pre[i] - s);
        if (it1 != freq.begin())
        {
            cnt += distance(freq.begin(), it1);
        }

        // Tìm số phần tử lớn hơn pre[i] + s
        auto it2 = freq.upper_bound(pre[i] + s);
        if (it2 != freq.end())
        {
            cnt += distance(it2, freq.end());
        }

        // Thêm pre[i] vào map
        freq[pre[i]]++;
    }

    cout << cnt;
    el;
}

int main()
{
    VuDucNam Lop9a6 THCSPhamVanDong
    file("code");
    solve();
    RUNTIME;
    return 0;
}
