#define IO std::ios::sync_with_stdio(0)
#include<bits/stdc++.h>
using namespace std;
#define ls o*2
#define rs o*2+1
typedef long long ll;
const int maxn=1e5+10,N=1e6+10;
ll sz[maxn*40], sum[maxn*40];
int x[maxn],t[maxn];
vector<int>g[maxn],dis[maxn];
//res is time to eat
ll qu(int o,int l,int r,ll res){
if(l==r)return min(res/l,sz[o]);
int m=(l+r)/2;
//time to eat is more than the time to eat all cookies
//of left side, eat all cookies of left side and goto right
if(res>sum[ls])return sz[ls]+qu(rs,m+1,r,res-sum[ls]);
//else just try to eat maximum you could eat on left side
else return qu(ls,l,m,res);
}
//tree is built upon time interval, since our queries will be,
//what is no cookies with lowest time to eat in any vertex
//k is time to eat one cookie
//and v is no of cookies in vertex o
void up(int o,int l,int r,int k,int v){
sz[o]+=v; //stores no of cookies we have in vertex o
sum[o]+=1ll*k*v; //stores total time to eat all cookies of vertex o
if(l==r)return; //if l==r nothing left to update, return
int m=(l+r)/2;
if(k>m) up(rs,m+1,r,k,v); //if our time segment 1 to k is in right half, go to right
else up(ls,l,m,k,v); //else goto left
}
// void print(ll* ar){
// for(int i=1; i<20; i++){
// cout<<i<<" "<<ar[i]<<endl;
// }
// cout<<endl;
// }
ll dfs(int u,ll res){
//N is maximum time of a cookie to eat 1-1e6
//build the tree
up(1,1,N,t[u],x[u]);
// print(sz);
// print(sum);
//get minimum time, max cookie
ll ans=qu(1,1,N,res),mx=0,mx2=0;
for(int i=0;i<g[u].size();i++){
ll w=2ll*dis[u][i]; //travel time
if(res<w)continue; //if travel time is larger than left time continue( can't go below this depth in this(i) adj of u)
ll tmp=dfs(g[u][i],res-w); //do dfs
if(tmp>mx) mx2=mx,mx=tmp; //find max and second max out of all neighbours
else if(tmp>mx2) mx2=tmp;
}
up(1,1,N,t[u],-x[u]); //update tree again( for other recursions in call stack)
if(u==1)return max(ans,mx);
else return max(ans,mx2);
}
int main(){
IO;
int n,u,w;
ll T;
cin>>n>>T;
for(int i=1;i<=n;i++)cin>>x[i];
for(int i=1;i<=n;i++)cin>>t[i];
for(int i=2;i<=n;i++){
cin>>u>>w;
g[u].push_back(i);
dis[u].push_back(w);
}
cout<<dfs(1,T)<<endl;
}
I2RlZmluZSBJTyBzdGQ6Omlvczo6c3luY193aXRoX3N0ZGlvKDApIAojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxzIG8qMgojZGVmaW5lIHJzIG8qMisxCnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgbWF4bj0xZTUrMTAsTj0xZTYrMTA7CgpsbCBzelttYXhuKjQwXSwgc3VtW21heG4qNDBdOwoKaW50IHhbbWF4bl0sdFttYXhuXTsKCnZlY3RvcjxpbnQ+Z1ttYXhuXSxkaXNbbWF4bl07CgovL3JlcyBpcyB0aW1lIHRvIGVhdApsbCBxdShpbnQgbyxpbnQgbCxpbnQgcixsbCByZXMpewoJaWYobD09cilyZXR1cm4gbWluKHJlcy9sLHN6W29dKTsKCWludCBtPShsK3IpLzI7CgkvL3RpbWUgdG8gZWF0IGlzIG1vcmUgdGhhbiB0aGUgdGltZSB0byBlYXQgYWxsIGNvb2tpZXMKCS8vb2YgbGVmdCBzaWRlLCBlYXQgYWxsIGNvb2tpZXMgb2YgbGVmdCBzaWRlIGFuZCBnb3RvIHJpZ2h0CglpZihyZXM+c3VtW2xzXSlyZXR1cm4gc3pbbHNdK3F1KHJzLG0rMSxyLHJlcy1zdW1bbHNdKTsKCS8vZWxzZSBqdXN0IHRyeSB0byBlYXQgbWF4aW11bSB5b3UgY291bGQgZWF0IG9uIGxlZnQgc2lkZQoJZWxzZSByZXR1cm4gcXUobHMsbCxtLHJlcyk7Cn0KCi8vdHJlZSBpcyBidWlsdCB1cG9uIHRpbWUgaW50ZXJ2YWwsIHNpbmNlIG91ciBxdWVyaWVzIHdpbGwgYmUsCi8vd2hhdCBpcyBubyBjb29raWVzIHdpdGggbG93ZXN0IHRpbWUgdG8gZWF0IGluIGFueSB2ZXJ0ZXgKLy9rIGlzIHRpbWUgdG8gZWF0IG9uZSBjb29raWUKLy9hbmQgdiBpcyBubyBvZiBjb29raWVzIGluIHZlcnRleCBvCnZvaWQgdXAoaW50IG8saW50IGwsaW50IHIsaW50IGssaW50IHYpewoJc3pbb10rPXY7ICAgLy9zdG9yZXMgbm8gb2YgY29va2llcyB3ZSBoYXZlIGluIHZlcnRleCBvCglzdW1bb10rPTFsbCprKnY7ICAvL3N0b3JlcyB0b3RhbCB0aW1lIHRvIGVhdCBhbGwgY29va2llcyBvZiB2ZXJ0ZXggbwoJaWYobD09cilyZXR1cm47ICAgLy9pZiBsPT1yIG5vdGhpbmcgbGVmdCB0byB1cGRhdGUsIHJldHVybgoJaW50IG09KGwrcikvMjsKCWlmKGs+bSkgdXAocnMsbSsxLHIsayx2KTsgICAvL2lmIG91ciB0aW1lIHNlZ21lbnQgMSB0byBrIGlzIGluIHJpZ2h0IGhhbGYsIGdvIHRvIHJpZ2h0CgllbHNlIHVwKGxzLGwsbSxrLHYpOyAgICAvL2Vsc2UgZ290byBsZWZ0Cn0KCi8vIHZvaWQgcHJpbnQobGwqIGFyKXsKLy8gICAgIGZvcihpbnQgaT0xOyBpPDIwOyBpKyspewovLyAgICAgICAgIGNvdXQ8PGk8PCIgIjw8YXJbaV08PGVuZGw7Ci8vICAgICB9Ci8vICAgICBjb3V0PDxlbmRsOwovLyB9CgpsbCBkZnMoaW50IHUsbGwgcmVzKXsKICAgIC8vTiBpcyBtYXhpbXVtIHRpbWUgb2YgYSBjb29raWUgdG8gZWF0IDEtMWU2CiAgICAvL2J1aWxkIHRoZSB0cmVlCgl1cCgxLDEsTix0W3VdLHhbdV0pOwovLwlwcmludChzeik7Ci8vCXByaW50KHN1bSk7CgkvL2dldCBtaW5pbXVtIHRpbWUsIG1heCBjb29raWUKCWxsIGFucz1xdSgxLDEsTixyZXMpLG14PTAsbXgyPTA7Cglmb3IoaW50IGk9MDtpPGdbdV0uc2l6ZSgpO2krKyl7CgkJbGwgdz0ybGwqZGlzW3VdW2ldOyAgICAgLy90cmF2ZWwgdGltZQoJCWlmKHJlczx3KWNvbnRpbnVlOyAgICAgIC8vaWYgdHJhdmVsIHRpbWUgaXMgbGFyZ2VyIHRoYW4gbGVmdCB0aW1lIGNvbnRpbnVlKCBjYW4ndCBnbyBiZWxvdyB0aGlzIGRlcHRoIGluIHRoaXMoaSkgYWRqIG9mIHUpCgkJbGwgdG1wPWRmcyhnW3VdW2ldLHJlcy13KTsgICAgICAvL2RvIGRmcwoJCWlmKHRtcD5teCkgbXgyPW14LG14PXRtcDsgICAvL2ZpbmQgbWF4IGFuZCBzZWNvbmQgbWF4IG91dCBvZiBhbGwgbmVpZ2hib3VycwoJCWVsc2UgaWYodG1wPm14MikgbXgyPXRtcDsKCX0KCXVwKDEsMSxOLHRbdV0sLXhbdV0pOyAgIC8vdXBkYXRlIHRyZWUgYWdhaW4oIGZvciBvdGhlciByZWN1cnNpb25zIGluIGNhbGwgc3RhY2spCglpZih1PT0xKXJldHVybiBtYXgoYW5zLG14KTsgCgllbHNlIHJldHVybiBtYXgoYW5zLG14Mik7Cn0KCmludCBtYWluKCl7CglJTzsKCWludCBuLHUsdzsKCQoJbGwgVDsKCWNpbj4+bj4+VDsKCWZvcihpbnQgaT0xO2k8PW47aSsrKWNpbj4+eFtpXTsKCWZvcihpbnQgaT0xO2k8PW47aSsrKWNpbj4+dFtpXTsKCWZvcihpbnQgaT0yO2k8PW47aSsrKXsKCQljaW4+PnU+Pnc7CgkJZ1t1XS5wdXNoX2JhY2soaSk7CgkJZGlzW3VdLnB1c2hfYmFjayh3KTsKCX0KCWNvdXQ8PGRmcygxLFQpPDxlbmRsOwp9Cg==