#include <bits/stdc++.h>

using namespace std;

int N, T, ans = 0;
int ocene[100], x[100], d[100];

void lepota(int n, int t){
    ans += ocene[n];
    cout << "ans=" << ans;
    if(t - d[x[n]] >= 0) {
        cout << "n=" << n << " t=" << t;
        lepota(x[n], t - d[x[n]]);
    }
}

int main()
{
    cin >> N >> T;
    int temp, j = 1;
    for(int i = 1; i <= N; i++){
        cin >> ocene[i];
    }
    for(int i = 1; i <= N; i++){
        cin >> temp;
        x[temp] = j++;
    }
    for(int i = 1; i <= N; i++){
        cin >> d[i];
    }
    int maxx = 0;
   // for(int i = 1; i <= N; i++){
    //    ans = 0;
        lepota(1, T);
    //    if(maxx < ans){
     //       maxx = ans;
     //   }
    //}
    cout << ans;
    return 0;
}