n, x = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) INF = 10**18 A = [a-x for a in A] s = sum(A) if s >= 0: print(0) exit() if max(A) < 0: print(-1) exit() from collections import defaultdict dp = defaultdict(lambda: INF) dp[s] = 0 for a, b in zip(A, B): if a >= 0: continue nx = defaultdict(lambda: INF) for k, v in dp.items(): nx[k] = min(nx[k], v) nx[k-a] = min(nx[k-a], v+b) dp = nx ans = INF for k, v in dp.items(): if k >= 0: ans = min(ans, v) if ans != INF: print(ans) else: print(-1)