#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 5e2 + 5;
const long long MaxK = 5e2 + 5;
const long long INF = 1e18;
long long n,L,a[MaxN][MaxN],S[MaxN],dp[MaxN][MaxK];
vector<long long> vt[MaxN];
long long cur[MaxK], pre[MaxK];
void dfs(long long u,long long par)
{
for(long long v : vt[u])
{
if(v==par) continue;
dfs(v,u);
}
memset(cur,-0x3f,sizeof(cur));
cur[0]=0;
for(long long v : vt[u])
{
if(v==par) continue;
for(long long j=0;j<=L;j++)
{
pre[j]=cur[j];
cur[j]=-INF;
}
for(long long j=0;j<=L;j++)
{
for(long long k=0;k<=L-j;k++)
{
cur[j+k]=max(cur[j+k],pre[j]+dp[v][k]);
}
}
}
for(long long k=0;k<=min(L,S[u]);k++)
{
for(long long x=0;x<=k;x++)
{
dp[u][k]=max(dp[u][k],cur[k-x]+a[u][x]);
}
}
}
void input()
{
cin>>n>>L;
for(long long i=2;i<=n;i++)
{
long long p;
cin>>p;
vt[p].push_back(i);
vt[i].push_back(p);
}
for(long long i=1;i<=n;i++)
{
cin>>S[i];
}
for(long long i=1;i<=n;i++)
{
for(long long j=0;j<=L;j++)
{
cin>>a[i][j];
}
}
}
void solve()
{
memset(dp,-0x3f,sizeof(dp));
dfs(1,0);
long long ans=0;
for(long long i=0;i<=L;i++)
{
ans=max(ans,dp[1][i]);
}
cout<<ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gNWUyICsgNTsKY29uc3QgbG9uZyBsb25nIE1heEsgPSA1ZTIgKyA1Owpjb25zdCBsb25nIGxvbmcgSU5GID0gMWUxODsKCmxvbmcgbG9uZyBuLEwsYVtNYXhOXVtNYXhOXSxTW01heE5dLGRwW01heE5dW01heEtdOwp2ZWN0b3I8bG9uZyBsb25nPiB2dFtNYXhOXTsKbG9uZyBsb25nIGN1cltNYXhLXSwgcHJlW01heEtdOwp2b2lkIGRmcyhsb25nIGxvbmcgdSxsb25nIGxvbmcgcGFyKQp7CiAgICBmb3IobG9uZyBsb25nIHYgOiB2dFt1XSkKICAgIHsKICAgICAgICBpZih2PT1wYXIpIGNvbnRpbnVlOwogICAgICAgIGRmcyh2LHUpOwogICAgfQoKICAgIG1lbXNldChjdXIsLTB4M2Ysc2l6ZW9mKGN1cikpOwogICAgY3VyWzBdPTA7CgogICAgZm9yKGxvbmcgbG9uZyB2IDogdnRbdV0pCiAgICB7CiAgICAgICAgaWYodj09cGFyKSBjb250aW51ZTsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyBqPTA7ajw9TDtqKyspCiAgICAgICAgewogICAgICAgICAgICBwcmVbal09Y3VyW2pdOwogICAgICAgICAgICBjdXJbal09LUlORjsKICAgICAgICB9CgogICAgICAgIGZvcihsb25nIGxvbmcgaj0wO2o8PUw7aisrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGxvbmcgbG9uZyBrPTA7azw9TC1qO2srKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY3VyW2ora109bWF4KGN1cltqK2tdLHByZVtqXStkcFt2XVtrXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGxvbmcgbG9uZyBrPTA7azw9bWluKEwsU1t1XSk7aysrKQogICAgewogICAgICAgIGZvcihsb25nIGxvbmcgeD0wO3g8PWs7eCsrKQogICAgICAgIHsKICAgICAgICAgICAgZHBbdV1ba109bWF4KGRwW3VdW2tdLGN1cltrLXhdK2FbdV1beF0pOwogICAgICAgIH0KICAgIH0KCn0KCnZvaWQgaW5wdXQoKQp7CiAgICBjaW4+Pm4+Pkw7CgogICAgZm9yKGxvbmcgbG9uZyBpPTI7aTw9bjtpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHA7CiAgICAgICAgY2luPj5wOwogICAgICAgIHZ0W3BdLnB1c2hfYmFjayhpKTsKICAgICAgICB2dFtpXS5wdXNoX2JhY2socCk7CiAgICB9CgogICAgZm9yKGxvbmcgbG9uZyBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgY2luPj5TW2ldOwogICAgfQoKICAgIGZvcihsb25nIGxvbmcgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGZvcihsb25nIGxvbmcgaj0wO2o8PUw7aisrKQogICAgICAgIHsKICAgICAgICAgICAgY2luPj5hW2ldW2pdOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBzb2x2ZSgpCnsKICAgIG1lbXNldChkcCwtMHgzZixzaXplb2YoZHApKTsKCiAgICBkZnMoMSwwKTsKCiAgICBsb25nIGxvbmcgYW5zPTA7CgogICAgZm9yKGxvbmcgbG9uZyBpPTA7aTw9TDtpKyspCiAgICB7CiAgICAgICAgYW5zPW1heChhbnMsZHBbMV1baV0pOwogICAgfQoKICAgIGNvdXQ8PGFuczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnB1dCgpOwogICAgc29sdmUoKTsKfQo=