#include<bits/stdc++.h>
#define ll long long
#define pp push_back
#define endl '\n'
#define all(x) x.begin(),x.end()
#define ld long double
#define PI acos(-1)
#define ones(x) __builtin_popcountll(x)
//#define int ll
using namespace std;
void Drakon() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifdef Clion
freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
#endif
}
unsigned long long inf = 1e10;
const double EPS = 1e-6;
const int MOD = 1000000007, N = 200005, LOG = 25;
ll mul(const ll &a, const ll &b) {
return (a % MOD + MOD) * (b % MOD + MOD) % MOD;
}
ll add(const ll &a, const ll &b) {
return (a + b + 2 * MOD) % MOD;
}
ll pw(ll x, ll y) {
ll ret = 1;
while (y > 0) {
if (y % 2 == 0) {
x = mul(x, x);
y = y / 2;
} else {
ret = mul(ret, x);
y = y - 1;
}
}
return ret;
}
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
ll sumNeg = 0, e;
multiset<int> neg, pos;
ordered_set<pair<ll, int>> pres;
vector<ll> pre;
void add(int a, int b, int i) {
if((b - a) >= 0) {
pos.insert(a);
}
else {
sumNeg += b - a;
neg.insert(b);
}
pres.insert({pre[i], i});
}
void rem(int a, int b, int i) {
if((b - a) >= 0) {
pos.erase(pos.find(a));
}
else {
sumNeg -= b - a;
neg.erase(neg.find(b));
}
pres.erase({pre[i], i});
}
bool check() {
if(!pos.empty()) {
if(e + sumNeg < *pos.rbegin()) return false;
}
if(!neg.empty()) {
if(e + sumNeg - *neg.rbegin() < 0) return false;
}
return true;
}
void solve() {
int n;
cin >> n >> e;
vector<int> a(n), b(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
for (int i = 0; i < n; ++i) {
cin >> b[i];
}
pre.resize(n);
for (int i = 0; i < n; ++i) {
pre[i] = (i ? pre[i - 1] : 0) + b[i] - a[i];
}
int r = 0;
ll ans = 0;
for (int i = 0; i < n; ++i) {
r = max(r, i);
while (r < n) {
add(a[r], b[r], r);
if(check()) r ++;
else {
rem(a[r], b[r], r);
break;
}
}
ans += r - i - pres.order_of_key({i ? pre[i - 1] : 0, -1});
if(r > i)
rem(a[i], b[i], i);
}
cout << ans << endl;
}
signed main() {
Drakon();
int t = 1;
//cin >> t;
while (t--) {
solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcHAgcHVzaF9iYWNrCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSx4LmVuZCgpCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBQSSBhY29zKC0xKQojZGVmaW5lIG9uZXMoeCkgX19idWlsdGluX3BvcGNvdW50bGwoeCkKLy8jZGVmaW5lIGludCBsbAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgRHJha29uKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgY291dC50aWUobnVsbHB0cik7CiNpZmRlZiBDbGlvbgogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbiksIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiNlbmRpZgp9Cgp1bnNpZ25lZCBsb25nIGxvbmcgaW5mID0gMWUxMDsKY29uc3QgZG91YmxlIEVQUyA9IDFlLTY7CmNvbnN0IGludCBNT0QgPSAxMDAwMDAwMDA3LCBOID0gMjAwMDA1LCBMT0cgPSAyNTsKCmxsIG11bChjb25zdCBsbCAmYSwgY29uc3QgbGwgJmIpIHsKICAgIHJldHVybiAoYSAlIE1PRCArIE1PRCkgKiAoYiAlIE1PRCArIE1PRCkgJSBNT0Q7Cn0KCmxsIGFkZChjb25zdCBsbCAmYSwgY29uc3QgbGwgJmIpIHsKICAgIHJldHVybiAoYSArIGIgKyAyICogTU9EKSAlIE1PRDsKfQoKbGwgcHcobGwgeCwgbGwgeSkgewogICAgbGwgcmV0ID0gMTsKICAgIHdoaWxlICh5ID4gMCkgewogICAgICAgIGlmICh5ICUgMiA9PSAwKSB7CiAgICAgICAgICAgIHggPSBtdWwoeCwgeCk7CiAgICAgICAgICAgIHkgPSB5IC8gMjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXQgPSBtdWwocmV0LCB4KTsKICAgICAgICAgICAgeSA9IHkgLSAxOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXQ7Cn0KCiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+Cgp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKdGVtcGxhdGU8dHlwZW5hbWUgVD4KdXNpbmcgb3JkZXJlZF9zZXQgPSB0cmVlPFQsIG51bGxfdHlwZSwgbGVzczxUPiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CgpsbCBzdW1OZWcgPSAwLCBlOwptdWx0aXNldDxpbnQ+IG5lZywgcG9zOwpvcmRlcmVkX3NldDxwYWlyPGxsLCBpbnQ+PiBwcmVzOwp2ZWN0b3I8bGw+IHByZTsKCnZvaWQgYWRkKGludCBhLCBpbnQgYiwgaW50IGkpIHsKICAgIGlmKChiIC0gYSkgPj0gMCkgewogICAgICAgIHBvcy5pbnNlcnQoYSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBzdW1OZWcgKz0gYiAtIGE7CiAgICAgICAgbmVnLmluc2VydChiKTsKICAgIH0KICAgIHByZXMuaW5zZXJ0KHtwcmVbaV0sIGl9KTsKfQoKdm9pZCByZW0oaW50IGEsIGludCBiLCBpbnQgaSkgewogICAgaWYoKGIgLSBhKSA+PSAwKSB7CiAgICAgICAgcG9zLmVyYXNlKHBvcy5maW5kKGEpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHN1bU5lZyAtPSBiIC0gYTsKICAgICAgICBuZWcuZXJhc2UobmVnLmZpbmQoYikpOwogICAgfQogICAgcHJlcy5lcmFzZSh7cHJlW2ldLCBpfSk7Cn0KCmJvb2wgY2hlY2soKSB7CiAgICBpZighcG9zLmVtcHR5KCkpIHsKICAgICAgICBpZihlICsgc3VtTmVnIDwgKnBvcy5yYmVnaW4oKSkgcmV0dXJuIGZhbHNlOwogICAgfQogICAgaWYoIW5lZy5lbXB0eSgpKSB7CiAgICAgICAgaWYoZSArIHN1bU5lZyAtICpuZWcucmJlZ2luKCkgPCAwKSByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOwogICAgY2luID4+IG4gPj4gZTsKICAgIHZlY3RvcjxpbnQ+IGEobiksIGIobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjaW4gPj4gYltpXTsKICAgIH0KCiAgICBwcmUucmVzaXplKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBwcmVbaV0gPSAoaSA/IHByZVtpIC0gMV0gOiAwKSArIGJbaV0gLSBhW2ldOwogICAgfQoKICAgIGludCByID0gMDsKICAgIGxsIGFucyA9IDA7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICByID0gbWF4KHIsIGkpOwogICAgICAgIHdoaWxlIChyIDwgbikgewogICAgICAgICAgICBhZGQoYVtyXSwgYltyXSwgcik7CiAgICAgICAgICAgIGlmKGNoZWNrKCkpIHIgKys7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmVtKGFbcl0sIGJbcl0sIHIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYW5zICs9IHIgLSBpIC0gcHJlcy5vcmRlcl9vZl9rZXkoe2kgPyBwcmVbaSAtIDFdIDogMCwgLTF9KTsKICAgICAgICBpZihyID4gaSkKICAgICAgICAgICAgcmVtKGFbaV0sIGJbaV0sIGkpOwogICAgfQogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKfQoKc2lnbmVkIG1haW4oKSB7CiAgICBEcmFrb24oKTsKICAgIGludCB0ID0gMTsKICAgIC8vY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KfQ==