def input_int(): return int(input()) def input_ints(): return list(map(int, input().split())) import numpy as np MOD = 10**9 + 7 N, M = input_ints() V = input_ints() R = input_ints() A, B = input_ints() dp = np.zeros(10**5 + 10, dtype=np.int64) dp[0] = 1 for i in range(N): dp[V[i]:] += dp[:-V[i]] dp %= MOD ep = np.zeros(10**5 + 10, dtype=np.int64) ep[0] = 1 for i in range(M): ep[R[i]:] += ep[:-R[i]] ep %= MOD ep[0] = 0 ep = np.cumsum(ep) ep %= MOD ans = 0 for i in range(len(dp)): # i/B <= j <= i/A ans += dp[i] * ep[i // A] if i > 0: ans -= dp[i] * ep[(i + B - 1) // B - 1] print(ans % MOD)