#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
const int maxn = 505;
int ant;
int flag=0;
int l,n,m,s,ca=1;
int a[maxn],b[maxn],c[maxn],x,sum[maxn*maxn];
int search(int x)
{
int left=1,right=ant-1;
int mid;
while(left<=right)
{
mid=(right-left)/2+left;
if(sum[mid]==x)
{
return 1;
}
else if(sum[mid]<x)
{
left=mid+1;
}
else{
right=mid-1;
}
}
return 0;
}
int main()
{
while(cin>>l>>n>>m)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(sum,0,sizeof(sum));
for(int i=0;i<l;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
cin>>b[i];
}
for(int i=0;i<m;i++)
{
cin>>c[i];
}
ant=0;
for(int i=0;i<l;i++)
{
for(int j=0;j<n;j++)
{
sum[ant++]=a[i]+b[j];
}
}
sort(sum,sum+ant);
cin>>s;
cout<<"Case "<<ca<<":"<<endl;
for(int i=0;i<s;i++)
{
cin>>x;
flag=0;
for(int j=0;j<m;j++)
{
if(search(x-c[j]))
{
cout<<"YES"<<endl;
flag=1;
break;
}
}
if(!flag)
cout<<"NO"<<endl;
}
ca++;
}
return 0;
}