dp求期望
double dp[1024][111];//dp[i][j]第i round到j格的概率
bool stop[111];
int go[111];
int n;
int main(){
while(scanf("%d",&n) !=-1){
int i,j;
int m;
memset(go,0,sizeof(go));
memset(stop,0,sizeof(stop));
scanf("%d",&m);
while(m--){
int pos,num;
scanf("%d%d",&pos,&num);
go[pos]+=num;
}
scanf("%d",&m);
while(m--){
int pos,num;
scanf("%d%d",&pos,&num);
go[pos]-=num;
}
scanf("%d",&m);
while(m--){
int pos;
scanf("%d",&pos);
stop[pos] = true;
}
memset(dp,0,sizeof(dp));
dp[0][0] = 1.0;
double per = 1.0/6.0;
for(i=0;i<1000;i++){
for(j=0;j<n;j++){
if(dp[i][j]>0){
for(int k=1;k<=6;k++){
int next = k+j;
if(next>n){
int res = next%n;
next = n-res;
}
if(stop[next]){
dp[i+2][next] += dp[i][j]*per;
} else {
next += go[next];
if(next>n){
int res = next%n;
next = n-res;
} else if(next<0)next =-next;
dp[i+1][next] += dp[i][j]*per;
}
}
}
}
}
double ans = 0;
for(i=0;i<1000;i++){
ans += dp[i][n]*i;
}
if(ans<eps)puts("Impossible");
else
printf("%.2lf\n",ans);
}
return 0;
}