#include #include using namespace std; constexpr int MOD = 1000000007; constexpr int HI = 101010; int main() { int N, M; cin >> N >> M; vector vp(HI), rp(HI); vp[0] = rp[0] = 1; while (N--) { int v; cin >> v; for (int i = HI - 1; i >= v; i--) { vp[i] += vp[i - v]; if (vp[i] >= MOD) vp[i] -= MOD; } } while (M--) { int r; cin >> r; for (int i = HI - 1; i >= r; i--) { rp[i] += rp[i - r]; if (rp[i] >= MOD) rp[i] -= MOD; } } vp[0] = rp[0] = 0; for (int i = 0; i < HI - 1; i++) { vp[i + 1] += vp[i]; if (vp[i + 1] >= MOD) vp[i + 1] -= MOD; } long long a, b; cin >> a >> b; long long ret = 0; for (int i = 1; i < HI - 1; i++) { if (!rp[i]) continue; long long lo = min(i * a, HI - 1), hi = min(i * b, HI - 1); ret += 1LL * rp[i] * (vp[hi] - vp[lo - 1] + MOD); ret %= MOD; } cout << ret << '\n'; }