#include<cstring>
using namespace std;
int inf=0x3f3f3f3f;
long dp[20200];
int a[55],b[55],c[55];
int main()
{
	int n,k,v=2e4-2;
	long ans;
	ans=inf;
	cin>>n>>k;
	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++)	cin>>c[i];	
	memset(dp,0x3f,sizeof(dp));
	dp[0]=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=v;j>=(a[i]-1);j--)
		{
			dp[j]=min(dp[j],dp[j-(a[i]-1)]+c[i]);
		}
	}
	for(int i=k;i<=v;i++)
		ans=min(ans,dp[i]);
	memset(dp,0x3f,sizeof(dp));
	dp[0]=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=v;j>=(b[i]-1);j--)
		{
			dp[j]=min(dp[j],dp[j-(b[i]-1)]+c[i]);
		}
	}
	for(int i=k;i<=v;i++)
		ans=min(ans,dp[i]);
	memset(dp,0x3f,sizeof(dp));
	dp[0]=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=v;j>=(a[i]+b[i]);j--)
		{
			dp[j]=min(dp[j],dp[j-(a[i]+b[i])]+c[i]);
		}
	}
	for(int i=2*k-1;i<=v;i++)
		ans=min(ans,dp[i]);	
	if(ans==inf) cout<<-1<<endl;
	else cout<<ans;
}