while 1:

    N,T,L,B = list(map(int,input().split()))

    if N == 0: break

    lose = [int(input()) for i in range(L)]

    back = [int(input()) for i in range(B)]



    dp = [[0.0]*(N+1) for i in range(T+2)]

    dp[0][0] = 1.0

    ans = 0.0

    p = 1.0/6.0

    for t in range(T):

        for i in range(N):

            tt = t-1 if i in lose else t

            for j in range(i+1,i+7):

                if j > N: j = N-j%N

                if j in back:

                    dp[t+1][0] += p*dp[tt][i]

                else:

                    dp[t+1][j] += p*dp[tt][i]

        dp[t+1][N] += dp[t][N]

    print("%.6f"%dp[T][N])
while 1:

    N,T,L,B = list(map(int,input().split()))

    if N == 0: break

    lose = set([int(input()) for i in range(L)])

    back = set([int(input()) for i in range(B)])

    dp = [[0.]*(N+1) for i in range(T+1)]

    dp[0][0] = 1.

    p = 1./6.

    for t in range(T):

        for i in range(N):

            tt = t-1 if i in lose else t

            for j in range(i+1,i+7):

                if j > N: j = N-j%N

                if j in back: j = 0

                dp[t+1][j] += p*dp[tt][i]

        dp[t+1][N] += dp[t][N]

    print("%.6f"%dp[T][N])
while 1:
    N, T, L, B = list(map(int, input().split()))
    if N == 0:
        break
    lose = [int(input()) for i in range(L)]
    back = [int(input()) for i in range(B)]
    dp = [[0.0] * (N + 1) for i in range(T + 2)]
    dp[0][0] = 1.0
    ans = 0.0
    p = 1.0 / 6.0
    for t in range(T):
        for i in range(N):
            tt = t - 1 if i in lose else t
            for j in range(i + 1, i + 7):
                if j > N:
                    j = N - j % N
                if j in back:
                    dp[t + 1][0] += p * dp[tt][i]
                else:
                    dp[t + 1][j] += p * dp[tt][i]
        dp[t + 1][N] += dp[t][N]
    print("%.6f" % dp[T][N])

while 1:
    N, T, L, B = list(map(int, input().split()))
    if N == 0:
        break
    lose = set([int(input()) for i in range(L)])
    back = set([int(input()) for i in range(B)])
    dp = [[0.0] * (N + 1) for i in range(T + 1)]
    dp[0][0] = 1.0
    p = 1.0 / 6.0
    for t in range(T):
        for i in range(N):
            tt = t - 1 if i in lose else t
            for j in range(i + 1, i + 7):
                if j > N:
                    j = N - j % N
                if j in back:
                    j = 0
                dp[t + 1][j] += p * dp[tt][i]
        dp[t + 1][N] += dp[t][N]
    print("%.6f" % dp[T][N])

-    lose = [int(input()) for i in range(L)] -    back = [int(input()) for i in range(B)] -    dp = [[0.0] * (N + 1) for i in range(T + 2)] +    lose = set([int(input()) for i in range(L)]) +    back = set([int(input()) for i in range(B)]) +    dp = [[0.0] * (N + 1) for i in range(T + 1)] -    ans = 0.0 -                    dp[t + 1][0] += p * dp[tt][i] -                else: -                    dp[t + 1][j] += p * dp[tt][i] +                    j = 0 +                dp[t + 1][j] += p * dp[tt][i]