import strutils, sequtils, math let get = iterator:string = for s in stdin.readAll.split: yield s proc read:int = get().parseInt template mo(a) = a = a mod (10^9+7) let n, m = read() let v = newSeqWith(n, read()) let r = newSeqWith(m, read()) let a, b = read() var vc, rc = 0.repeat(10^5 + 1) vc[0] = 1 for v in v: for i in countdown(10^5 - v, 0): vc[i+v].inc vc[i]; vc[i+v].mo vc[0] = 0 rc[0] = 1 for r in r: for i in countdown(10^5 - r, 0): rc[i+r].inc rc[i]; rc[i+r].mo rc[0] = 0 for i in 1..10^5: rc[i].inc rc[i-1]; rc[i].mo var cnt = 0 for v, c in vc: let rma = v div a let rmi = (v + b - 1) div b cnt.inc (rc[rma] - rc[max(0, rmi-1)]) * c cnt.mo echo cnt