#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]);
}