- #include <bits/stdc++.h> 
- #define boost ios_base::sync_with_stdio(false); cin.tie(NULL); 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; 
- const ll MOD = 1e9 + 7; 
- const ll inf = LLONG_MAX; 
-   
- int n; 
- ll s, pre[N5], cnt; 
- multiset<ll> si; 
-   
- void solve() 
- { 
-     cin >> n >> s; 
-     for (int i = 1; i <= n; ++i) 
-     { 
-         ll x; 
-         cin >> x; 
-         pre[i] = pre[i - 1] + x; 
-     } 
-     for (int i = 1; i <= n; ++i) 
-     { 
-         auto it1 = si.lower_bound(pre[i] - s); 
-         auto it2 = si.upper_bound(pre[i] + s); 
-         cnt += distance(si.begin(), it1) + distance(it2, si.end()); 
-         si.insert(pre[i]); 
-     } 
-   
-     cout << cnt; 
-     el; 
- } 
-   
- int main() 
- { 
-     boost 
-     file("code"); 
-     solve(); 
-     RUNTIME; 
-     return 0; 
- } 
-   
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgYm9vc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIHN6KGEpIChsbClhLnNpemUoKQojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSBmaWxlKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlmIChmb3BlbihuYW1lICIuaW5wIiwgInIiKSkgICAgICAgICAgIFwKICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBmcmVvcGVuKG5hbWUgIi5pbnAiLCAiciIsIHN0ZGluKTsgIFwKICAgICAgICBmcmVvcGVuKG5hbWUgIi5vdXQiLCAidyIsIHN0ZG91dCk7IFwKICAgIH0KI2RlZmluZSBUSU1FICgxLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMpCiNkZWZpbmUgUlVOVElNRSBjZXJyIDw8ICJcblJ1bnRpbWU6ICIgPDwgVElNRSA8PCAicy5cbiIKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTjUgPSAxZTUgKyA1Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3Owpjb25zdCBsbCBpbmYgPSBMTE9OR19NQVg7CgppbnQgbjsKbGwgcywgcHJlW041XSwgY250OwptdWx0aXNldDxsbD4gc2k7Cgp2b2lkIHNvbHZlKCkKewogICAgY2luID4+IG4gPj4gczsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBsbCB4OwogICAgICAgIGNpbiA+PiB4OwogICAgICAgIHByZVtpXSA9IHByZVtpIC0gMV0gKyB4OwogICAgfQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgewogICAgICAgIGF1dG8gaXQxID0gc2kubG93ZXJfYm91bmQocHJlW2ldIC0gcyk7CiAgICAgICAgYXV0byBpdDIgPSBzaS51cHBlcl9ib3VuZChwcmVbaV0gKyBzKTsKICAgICAgICBjbnQgKz0gZGlzdGFuY2Uoc2kuYmVnaW4oKSwgaXQxKSArIGRpc3RhbmNlKGl0Miwgc2kuZW5kKCkpOwogICAgICAgIHNpLmluc2VydChwcmVbaV0pOwogICAgfQoKICAgIGNvdXQgPDwgY250OwogICAgZWw7Cn0KCmludCBtYWluKCkKewogICAgYm9vc3QKICAgIGZpbGUoImNvZGUiKTsKICAgIHNvbHZlKCk7CiAgICBSVU5USU1FOwogICAgcmV0dXJuIDA7Cn0K