#include<bits/stdc++.h>
#define FILE "read"
using namespace std;
const int MAXN=(int)1e3,D=50;
int n,m,ans,a[15],b[15],check[MAXN+D],sg[MAXN+D];
namespace INIT{
char buf[1<<15],*fs,*ft;
inline char getc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}
inline int read(){
int x=0,f=1; char ch=getc();
while(!isdigit(ch)) {if(ch=='-') f=-1; ch=getc();}
while(isdigit(ch)) {x=x*10+ch-'0'; ch=getc();}
return x*f;
}
}using namespace INIT;
int main(){
freopen(FILE".in","r",stdin);
freopen(FILE".out","w",stdout);
n=read(); for(int i=1;i<=n;++i) a[i]=read();
m=read(); for(int i=1;i<=m;++i) b[i]=read();
for(int i=1;i<=MAXN;++i){
for(int j=1;j<=m;++j) if(i-b[j]>=0) check[sg[i-b[j]]]=i;
for(int j=0;j<=MAXN;++j) if(check[j]!=i) {sg[i]=j; break;}
}
for(int i=1;i<=n;++i) ans^=sg[a[i]];
if(ans){
puts("YES");
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j){
if((ans^sg[a[i]]^sg[a[i]-b[j]])==0){
printf("%d %d\n",i,b[j]);
exit(0);
}
}
}
else puts("NO");
return 0;
}