import sequtils,strutils,random,algorithm,math
var
    N : int
    P : seq[float64]
    l1 = stdin.readline.split
    va : int
    C : array[2, seq[int]]
N = l1[0].parseInt
P = l1[1..2].map(parsefloat)
C[0] = stdin.readline.split.map(parseInt)
C[1] = stdin.readline.split.map(parseInt)
for i in 0..1:
    C[i].sort(system.cmp)
randomize()
proc main : bool=
    var
        F : array[2,array[20, bool]]
        c : array[2, int]
        cnt : int
        
    for n in 1..<N:
        for i in 0..1:
            if random(1.0) <= P[i]:
                for j in 0..<N:
                    if F[i][j] == false:
                        c[i] = C[i][j]
                        F[i][j] = true
                        break
            else:
                var
                    c2 = newSeq[int](0)
                    t : bool
                for j in 0..<N:
                    if F[i][j] == false and t:
                        c2.add(C[i][j])
                    elif F[i][j] == false:
                        t = true
                c[i] = random(c2)
                for j in 0..<N:
                    if c[i] == C[i][j]:
                        F[i][j] = true
                        break
        #echo c[0..1]
        if c[0] > c[1]:
            cnt += c[0] + c[1]
        else:
            cnt -= c[0] + c[1]
    for i in 0..1:
        for j in 0..<N:
            if F[i][j] == false:
                c[i] = C[i][j]
    if c[0] > c[1]:
        cnt += c[0] + c[1]
    else:
        cnt -= c[0] + c[1]
    if cnt > 0:
        return true

for n in 1..100000:
    if main():
        va += 1
echo va / 100000