#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<set>
using namespace std;
const int K=101;
const int H=10001;
int s[K],sg[H];
int k,m,h,n;
bool vis[K];
int i,j;
sg[0]=0;
for(i=1;i<H;i++){
memset(vis,false,sizeof(vis));
for(j=0;j<k&&i>=s[j];j++){
vis[sg[i-s[j]]]=true;
}
j=0;
while(vis[j]){
j++;
}
sg[i]=j;
}
}
int main(){
int i,j,x;
while(~scanf("%d",&k),k){
for(i=0;i<k;i++){
scanf("%d",&s[i]);
}
sort(s,s+k);
solve();
scanf("%d",&m);
for(i=0;i<m;i++){
x=0;
scanf("%d",&n);
for(j=0;j<n;j++){
scanf("%d",&h);
x=x^sg[h];
}
if(x){
printf("W");
}
else{
printf("L");
}
}
puts("");
}
return 0;
}
#include<string.h>
#include<algorithm>
#include<set>
using namespace std;
const int K=101;
const int H=10001;
int s[K],sg[H];
int k,m,h,n;
bool vis[K];
//用set求SG的时候就会TLE。。。。好无语,改用vis就46ms/64ms.................有这么慢么。
int i,j;
sg[0]=0;
for(i=1;i<H;i++){
memset(vis,false,sizeof(vis));
for(j=0;j<k&&i>=s[j];j++){
vis[sg[i-s[j]]]=true;
}
j=0;
while(vis[j]){
j++;
}
sg[i]=j;
}
}
int main(){
int i,j,x;
while(~scanf("%d",&k),k){
for(i=0;i<k;i++){
scanf("%d",&s[i]);
}
sort(s,s+k);
solve();
scanf("%d",&m);
for(i=0;i<m;i++){
x=0;
scanf("%d",&n);
for(j=0;j<n;j++){
scanf("%d",&h);
x=x^sg[h];
}
if(x){
printf("W");
}
else{
printf("L");
}
}
puts("");
}
return 0;
}