#include <bits/stdc++.h>   int a[1000000], b[1000000], n, k, f[1000000], c[1000000], i, j;   int max(int a, int b) {     if (a > b) return a;     return b;   }   int main() {     scanf( %d%d , &n, &k);     for (i = 1; i <= n; i++) scanf( %d , &a[i]);     for (i = 1; i <= n; i++) {       scanf( %d , &b[i]);       b[i] = b[i] * k;       c[i] = a[i] - b[i];     }     for (i = 0; i <= 20000; i++) f[i] = -0x37373737;     f[10000] = 0;     for (i = 1; i <= n; i++) {       if (c[i] > 0)         for (j = 20000; j >= c[i]; j--) f[j] = max(f[j - c[i]] + a[i], f[j]);       else         for (j = 0; j <= 20000 + c[i]; j++) f[j] = max(f[j - c[i]] + a[i], f[j]);     }     if (f[10000])       printf( %d , f[10000]);     else       printf( -1 );   }   