#include<stdio.h>
#include<string.h>
int N,T,L,B,M[105],t,np,i,j,d;
double res,DP[105][105];
int main()
{
	for(;scanf("%d%d%d%d",&N,&T,&L,&B),N;)
	{
		res=0;
		memset(M,0,sizeof(M));
		memset(DP,0,sizeof(DP));
		DP[0][0]=1;
		for(i=0;i<L;i++){scanf("%d",&t);M[t]=1;}
		for(i=0;i<B;i++){scanf("%d",&t);M[t]=2;}
		for(i=0;i<T;i++)
			for(j=0;j<N;j++)
			{
				for(d=1;d<=6;d++)
				{
					np=j+d;
					if(np>N)np=N-(np-N);
 					if(M[np]==1)
						DP[i+2][np]+=DP[i][j]/6;
					else if(M[np]==2)
						DP[i+1][0]+=DP[i][j]/6;
					else
						DP[i+1][np]+=DP[i][j]/6;
				}
			}
		for(i=0;i<=T;i++)res+=DP[i][N];
		printf("%.10f\n",res);
	}
	return 0;
}