#include<stdio.h>
#include<string.h>
int N,T,L,B,E[101],i,j,k,t,p;
double dp[101][101];
int main()
{
	for(;scanf("%d%d%d%d",&N,&T,&L,&B),N;)
	{
		memset(E,0,sizeof(E));
		memset(dp,0,sizeof(dp));
		for(i=0;i<L;E[t]=1,i++)scanf("%d",&t);//1 ha lose
		for(i=0;i<B;E[t]=2,i++)scanf("%d",&t);//2 ha back
		dp[0][N]=1;
		for(i=1;i<7;i++)
			dp[0][N-i]=1.0/6;
		for(i=1;i<T;i++)
			for(j=0;j<N;dp[i][j]/=6,j++)
				for(k=1;k<7;k++)
				{
					p=j+k>N?(2*N-j-k):j+k;
					if(E[p]==1)
					{
						if(i>2)
							dp[i][j]=dp[i-2][p];
					}
					else if(E[p]==2)
						dp[i][j]+=dp[i-1][0];
					else
						dp[i][j]+=dp[i-1][p];
				}
		printf("%lf\n",dp[T-1][0]);
	}
	return 0;
}