# https://yukicoder.me/problems/no/1163 MAX_INT = 10 ** 18 def main(): N, X = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) C = [(A[i] - X, B[i]) for i in range(N)] value_map = {} answer = -1 for a, b in C: new_value_map = value_map.copy() for key, value in value_map.items(): if (key + a) not in new_value_map: new_value_map[key + a] = -1 new_value_map[key + a] = max(new_value_map[key + a], value + b) if a not in new_value_map: new_value_map[a] = -1 new_value_map[a] = max(new_value_map[a], b) value_map = new_value_map answer = MAX_INT sum_b = sum(B) for key, value in value_map.items(): if key >= 0: answer = min(answer, sum_b - value) if answer == MAX_INT: print(-1) else: print(answer) if __name__ == "__main__": main()