#include <iostream>
#include <algorithm>
using namespace std;
class Gangters
{
public:
int T, P, S;
friend bool operator<(const Gangters &a, const Gangters &b)
{
return a.T < b.T;
}
};
Gangters gt[110];
int hash[110];
int main()
{
int N, K, T;
while (scanf("%d %d %d", &N, &K, &T) != EOF)
{
int i, j;
for (i = 0; i < N; ++i)
{
scanf("%d", >[i].T);
}
for (i = 0; i < N; ++i)
{
scanf("%d", >[i].P);
}
for (i = 0; i < N; ++i)
{
scanf("%d", >[i].S);
}
sort(gt, gt + N);
int max = -1;
for (i = 0; i < N; ++i)
{
hash[i] = -1;
if (gt[i].T >= gt[i].S)
{
hash[i] = 0;
}
for (j = 0; j < i; ++j)
{
if (hash[i] < hash[j] && gt[i].T - gt[j].T >= gt[i].S - gt[j].S && gt[i].T -gt[j].T >= gt[j].S - gt[i].S)
{
hash[i] = hash[j];
}
}
if (hash[i] >= 0)
{
hash[i] += gt[i].P;
}
if (max < hash[i])
{
max = hash[i];
}
}
if (max == -1)
{
max = 0;
}
printf("%d\n", max);
}
return 0;
}