from bisect import bisect_left N,W = map(int, input().split()) X = list(map(int, input().split())) Y = list(map(int, input().split())) C = {} for i in range(N): x = X[i] y = Y[i] C[x] = C.get(x,0)+y C = sorted(C.items()) xmin = C[0][0] xmax = C[-1][0] ans = 0 for w in range(W,xmax+1): cnt = 0 for k in range(1,xmax//w+1): x = w*k i = bisect_left(C, (x,0)) if C[i][0]==x: cnt += C[i][1] ans = max(ans, cnt) print(ans)