import sys def solve(): input_data = sys.stdin.read().split() if not input_data: return N = int(input_data[0]) W = int(input_data[1]) X = [int(x) for x in input_data[2:N+2]] Y = [int(y) for y in input_data[N+2:2*N+2]] if not X: print(0) return max_x = max(X) if W > max_x: print(0) return val_sum = [0] * (max_x + 1) for i in range(N): val_sum[X[i]] += Y[i] ans = 0 for g in range(W, max_x + 1): curr = 0 for j in range(g, max_x + 1, g): curr += val_sum[j] if curr > ans: ans = curr print(ans) if __name__ == '__main__': solve()