#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
typedef long long ll;
const int N=1000005;
ll a[N],b[N],c[N],n,E;
void compress(){
vector<ll>s;
s.reserve(n+1);
for(int i=0;i<=n;i++)s.push_back(c[i]);
sort(s.begin(),s.end());
s.erase(unique(s.begin(),s.end()),s.end());
for(int i=0;i<=n;i++)c[i]=lower_bound(s.begin(),s.end(),c[i])-s.begin()+1;
}
int sp[20][N];
int MAX(int l,int r){
if(l>r)return 0;
int pw=__lg(r-l+1);
return max(sp[pw][l],sp[pw][r-(1<<pw)+1]);
}
int tree[N+1];
void add(int i,int val){
for(;i<=N;i+=i&-i)tree[i]+=val;
}
int query(int i){
int res=0;
for(;i>=1;i-=i&-i)res+=tree[i];
return res;
}
int query(int l,int r){
return query(r)-query(l-1);
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>E;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
for(int i=1;i<=n;i++)c[i]=(b[i]-a[i])+c[i-1];
compress();
for(int i=1;i<=n;i++)sp[0][i]=min(a[i],b[i]);
for(int i=1;(1<<i)<=n;i++){
for(int j=1;j+(1<<i)-1<=n;j++){
sp[i][j]=max(sp[i-1][j],sp[i-1][j+(1<<(i-1))]);
}
}
ll ans=0;
for(int l=1,r=1;l<=n;l++){
while(r<=n&&MAX(l,r)<=E-max(a[r]-b[r],0LL)){
add(c[r],1);
E-=max(a[r]-b[r],0LL);
r++;
}
ans+=query(c[l-1],N);
if(l==r)r++;
else add(c[l],-1),E+=max(a[l]-b[l],0LL);
}
cout<<ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTj0xMDAwMDA1OwpsbCBhW05dLGJbTl0sY1tOXSxuLEU7CnZvaWQgY29tcHJlc3MoKXsKCXZlY3RvcjxsbD5zOwoJcy5yZXNlcnZlKG4rMSk7Cglmb3IoaW50IGk9MDtpPD1uO2krKylzLnB1c2hfYmFjayhjW2ldKTsKCXNvcnQocy5iZWdpbigpLHMuZW5kKCkpOwoJcy5lcmFzZSh1bmlxdWUocy5iZWdpbigpLHMuZW5kKCkpLHMuZW5kKCkpOwoJZm9yKGludCBpPTA7aTw9bjtpKyspY1tpXT1sb3dlcl9ib3VuZChzLmJlZ2luKCkscy5lbmQoKSxjW2ldKS1zLmJlZ2luKCkrMTsKfQppbnQgc3BbMjBdW05dOwppbnQgTUFYKGludCBsLGludCByKXsKCWlmKGw+cilyZXR1cm4gMDsKCWludCBwdz1fX2xnKHItbCsxKTsKCXJldHVybiBtYXgoc3BbcHddW2xdLHNwW3B3XVtyLSgxPDxwdykrMV0pOwp9CmludCB0cmVlW04rMV07CnZvaWQgYWRkKGludCBpLGludCB2YWwpewoJZm9yKDtpPD1OO2krPWkmLWkpdHJlZVtpXSs9dmFsOwp9CmludCBxdWVyeShpbnQgaSl7CglpbnQgcmVzPTA7Cglmb3IoO2k+PTE7aS09aSYtaSlyZXMrPXRyZWVbaV07CglyZXR1cm4gcmVzOwp9CmludCBxdWVyeShpbnQgbCxpbnQgcil7CglyZXR1cm4gcXVlcnkociktcXVlcnkobC0xKTsKfQppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CgljaW4+Pm4+PkU7Cglmb3IoaW50IGk9MTtpPD1uO2krKyljaW4+PmFbaV07Cglmb3IoaW50IGk9MTtpPD1uO2krKyljaW4+PmJbaV07Cglmb3IoaW50IGk9MTtpPD1uO2krKyljW2ldPShiW2ldLWFbaV0pK2NbaS0xXTsKCWNvbXByZXNzKCk7Cglmb3IoaW50IGk9MTtpPD1uO2krKylzcFswXVtpXT1taW4oYVtpXSxiW2ldKTsKCWZvcihpbnQgaT0xOygxPDxpKTw9bjtpKyspewoJCWZvcihpbnQgaj0xO2orKDE8PGkpLTE8PW47aisrKXsKCQkJc3BbaV1bal09bWF4KHNwW2ktMV1bal0sc3BbaS0xXVtqKygxPDwoaS0xKSldKTsKCQl9Cgl9CglsbCBhbnM9MDsKCWZvcihpbnQgbD0xLHI9MTtsPD1uO2wrKyl7CgkJd2hpbGUocjw9biYmTUFYKGwscik8PUUtbWF4KGFbcl0tYltyXSwwTEwpKXsKCQkJYWRkKGNbcl0sMSk7CgkJCUUtPW1heChhW3JdLWJbcl0sMExMKTsKCQkJcisrOwoJCX0KCQlhbnMrPXF1ZXJ5KGNbbC0xXSxOKTsKCQlpZihsPT1yKXIrKzsKCQllbHNlIGFkZChjW2xdLC0xKSxFKz1tYXgoYVtsXS1iW2xdLDBMTCk7Cgl9Cgljb3V0PDxhbnM7CglyZXR1cm4gMDsKfQ==