Code:
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define maxn 1003
int arr[13],step[13],SG[maxn];
bool vis[maxn];
int main(){
//freopen("input.in","r",stdin);
int n,m,MAX=0,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&arr[i]), MAX=max(MAX,arr[i]);
scanf("%d",&m);
for(int i=1;i<=m;++i) scanf("%d",&step[i]);
SG[0]=0;
for(int i=1;i<=1000;++i) {
memset(vis,0,sizeof(vis));
for(int j=1;j<=m&&step[j]<=i;++j) vis[SG[i-step[j]]]=1;
for(int j=0;;++j)
if(!vis[j]){
SG[i]=j;
break;
}
}
for(int i=1;i<=n;++i) ans^=SG[arr[i]];
if(ans==0)printf("NO");
else printf("YES
");
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m&&step[j]<=arr[i];++j)
if((ans^SG[arr[i]])==SG[arr[i]-step[j]]) {
printf("%d %d",i,step[j]);
return 0;
}
}
return 0;
}