#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<set>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<iostream>
#include<string>
#include<cmath>
#define N 1000100
#define FOR(i,a,b) for(i=(a);i<=(b);i++)
#define ROF(i,a,b) for(i=(a);i>=(b);i--)
typedef long long LL;
using namespace std;
int n,a[N],cnt[N],ans[N],f[N],m;
int main()
{
scanf("%d",&n);
int tot=0,i,t,j,l=-1;
memset(cnt,0,sizeof(cnt));
FOR(i,1,n)
{
scanf("%d",&a[i]);
cnt[a[i]]++;
tot=max(tot,a[i]);
}
FOR(i,1,tot) f[i]=i;
scanf("%d",&m);
FOR(i,1,m)
{
scanf("%d",&t);
int F=0;
for(int p=f[t];p<=tot;p+=t)
{
if (cnt[p])
{
ans[i]=p;
cnt[p]--;F=1;
if (!cnt[p]) f[t]=p+t;else f[t]=p;
break;
}
}
if (!F) {l=i-1;break;}
}
if (l==-1) l=m;
printf("%d\n",l);
FOR(i,1,l) printf("%d\n",ans[i]);
}