#include<cstdio>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

int main(){
	for(int n,t,nl,nb;scanf("%d%d%d%d",&n,&t,&nl,&nb),n;){
		bool lose[101]={},back[101]={};
		rep(i,nl){ int a; scanf("%d",&a); lose[a]=true; }
		rep(i,nb){ int a; scanf("%d",&a); back[a]=true; }

		n++;
		double dp[102][101]={};
		dp[0][0]=1;
		rep(i,t) rep(x,n) {
			if(x==n-1){ // à¤S[É¢éÈç³¢±ëðUçÈ¢
				dp[i+1][x]+=dp[i][x];
			}
			else{ // ³¢±ëðUé
				int i_next=(!lose[x]?i+1:i+2);
				for(int a=1;a<=6;a++){
					int y=x+a; if(y>=n) y=2*(n-1)-y; // x ©ç a }Xiñ¾Êu
					if(back[y]) dp[i_next][0]+=dp[i][x]/6;
					else        dp[i_next][y]+=dp[i][x]/6;
				}
			}
		}
		printf("%.9f\n",dp[t][n-1]);
	}

	return 0;
}