#include <bits/stdc++.h>
using namespace std;
#define int long long
#define dd double
#define ld long double
#define ull unsigned long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define el "\n"
#define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fix(x) cout << fixed << setprecision(x)
#define all(v) v.begin(),v.end()
#define dpp(v,val) memset(v,val,sizeof(v))
#define mod 1e9+7
#define oo 1e9
const int N = 1e5 + 5;
int n,k;
vector<int>taste,cal;
int dp[N],dp2[N];
int solve(int i,int t,int c)
{
if(i==n)
{
if(c*k-t==0&&t!=0) return t;
return 0;
}
int ret;
if(t>k*c) ret=dp[abs(k*c-t)];
else ret=dp2[(k*c-t)+10000];
if(ret!=-1) return ret;
int tk=0,l=0;
tk=solve(i+1,t+taste[i],c+cal[i]);
l=solve(i+1,t,c);
return ret=max(tk,l);
}
void HereWeGoAgain()
{
cin>>n>>k;
taste.resize(n); cal.resize(n);
for(int i=0;i<n;i++)
cin>>taste[i];
for(int i=0;i<n;i++)
cin>>cal[i];
dpp(dp,-1);dpp(dp2,-1);
if(solve(0,0,0)==0)cout<<-1<<el;
else cout<<solve(0,0,0);
}
int32_t main()
{
Arwa
int t=1;
//cin>>t;
for(int i=1;i<=t;i++)
{
HereWeGoAgain();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRkIGRvdWJsZQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVNcbiIKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIgojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBBcndhIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCkKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSBkcHAodix2YWwpIG1lbXNldCh2LHZhbCxzaXplb2YodikpCiNkZWZpbmUgbW9kIDFlOSs3CiNkZWZpbmUgb28gMWU5CmNvbnN0IGludCBOID0gMWU1ICsgNTsKaW50IG4sazsKdmVjdG9yPGludD50YXN0ZSxjYWw7CmludCBkcFtOXSxkcDJbTl07CmludCBzb2x2ZShpbnQgaSxpbnQgdCxpbnQgYykgCnsKICAgaWYoaT09bikgCiAgIHsKICAgICAgaWYoYyprLXQ9PTAmJnQhPTApIHJldHVybiB0OwogICAgICByZXR1cm4gMDsKICAgfQogICBpbnQgcmV0OwogICBpZih0PmsqYykgcmV0PWRwW2FicyhrKmMtdCldOwogICBlbHNlIHJldD1kcDJbKGsqYy10KSsxMDAwMF07CiAgIGlmKHJldCE9LTEpIHJldHVybiByZXQ7CiAgIGludCB0az0wLGw9MDsKICAgdGs9c29sdmUoaSsxLHQrdGFzdGVbaV0sYytjYWxbaV0pOwogICBsPXNvbHZlKGkrMSx0LGMpOwogICByZXR1cm4gcmV0PW1heCh0ayxsKTsKfQp2b2lkIEhlcmVXZUdvQWdhaW4oKQp7CiAgY2luPj5uPj5rOwogIHRhc3RlLnJlc2l6ZShuKTsgY2FsLnJlc2l6ZShuKTsKICBmb3IoaW50IGk9MDtpPG47aSsrKQogIGNpbj4+dGFzdGVbaV07CiAgZm9yKGludCBpPTA7aTxuO2krKykKICBjaW4+PmNhbFtpXTsKICAgZHBwKGRwLC0xKTtkcHAoZHAyLC0xKTsKICBpZihzb2x2ZSgwLDAsMCk9PTApY291dDw8LTE8PGVsOwogIGVsc2UgY291dDw8c29sdmUoMCwwLDApOwp9CmludDMyX3QgbWFpbigpIAp7CiAgICBBcndhCiAgICBpbnQgdD0xOwogICAgLy9jaW4+PnQ7CiAgICBmb3IoaW50IGk9MTtpPD10O2krKykKICAgIHsKICAgIEhlcmVXZUdvQWdhaW4oKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==