#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<fstream>
#include<map>
#include<ctime>
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<bitset>
#include<functional>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define REP(i,l,r) for((i)=(l);(i)<=(r);++(i))
#define REP2(i,l,r) for((i)=(l);(i)!=(r);++(i))
using namespace std;
typedef long long LL;
typedef double ld;
const int MAX=1000000+50;
int n,m;
int a[MAX],b[MAX];
int main()
{
// freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);
int i,j;
scanf("%d",&n);
REP(i,1,n)
scanf("%d",&a[i]);
scanf("%d",&m);
REP(i,1,m)
scanf("%d",&b[i]);
for(i=m;i>=1;--i)
for(;b[i]>=1;)
{
b[i]--;
if(i==1 && a[i])
{
a[i]=0;
b[i+1]++;
i+=2;
break;
}
if(a[i+1])
{
j=i+1;
for(;a[j+2];j+=2)
a[j]=0;
a[j]=0;
a[j+1]=1;
}
else if(a[i-1])
{
a[i-1]=0;
b[i+1]++;
i+=2;
break;
}
else if(a[i])
{
a[i]=0;
b[max(i-2,1)]++;
b[i+1]++;
i+=2;
break;
}
else
a[i]++;
}
int num=0,c=max(n,m);
REP(i,1,c+20)
if(a[i])
num=i;
printf("%d ",num);
REP(i,1,num)
{
printf("%d",a[i]);
if(i!=num)
printf(" ");
}
printf("\n");
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGN0aW1lPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxiaXRzZXQ+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgUkVQKGksbCxyKSBmb3IoKGkpPShsKTsoaSk8PShyKTsrKyhpKSkKI2RlZmluZSBSRVAyKGksbCxyKSBmb3IoKGkpPShsKTsoaSkhPShyKTsrKyhpKSkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIGRvdWJsZSBsZDsKCmNvbnN0IGludCBNQVg9MTAwMDAwMCs1MDsKCmludCBuLG07CmludCBhW01BWF0sYltNQVhdOwoKaW50IG1haW4oKQp7Ci8vCWZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKCWludCBpLGo7CglzY2FuZigiJWQiLCZuKTsKCVJFUChpLDEsbikKCQlzY2FuZigiJWQiLCZhW2ldKTsKCXNjYW5mKCIlZCIsJm0pOwoJUkVQKGksMSxtKQoJCXNjYW5mKCIlZCIsJmJbaV0pOwoJZm9yKGk9bTtpPj0xOy0taSkKCQlmb3IoO2JbaV0+PTE7KQoJCXsKCQkJYltpXS0tOwoJCQlpZihpPT0xICYmIGFbaV0pCgkJCXsKCQkJCWFbaV09MDsKCQkJCWJbaSsxXSsrOwoJCQkJaSs9MjsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmKGFbaSsxXSkKCQkJewoJCQkJaj1pKzE7CgkJCQlmb3IoO2FbaisyXTtqKz0yKQoJCQkJCWFbal09MDsKCQkJCWFbal09MDsKCQkJCWFbaisxXT0xOwoJCQl9CgkJCWVsc2UgaWYoYVtpLTFdKQoJCQl7CgkJCQlhW2ktMV09MDsKCQkJCWJbaSsxXSsrOwoJCQkJaSs9MjsKCQkJCWJyZWFrOwoJCQl9CgkJCWVsc2UgaWYoYVtpXSkKCQkJewoJCQkJYVtpXT0wOwoJCQkJYlttYXgoaS0yLDEpXSsrOwoJCQkJYltpKzFdKys7CgkJCQlpKz0yOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZQoJCQkJYVtpXSsrOwoJCX0KCWludCBudW09MCxjPW1heChuLG0pOwoJUkVQKGksMSxjKzIwKQoJCWlmKGFbaV0pCgkJCW51bT1pOwoJcHJpbnRmKCIlZCAiLG51bSk7CglSRVAoaSwxLG51bSkKCXsKCQlwcmludGYoIiVkIixhW2ldKTsKCQlpZihpIT1udW0pCgkJCXByaW50ZigiICIpOwoJfQoJcHJpbnRmKCJcbiIpOwoJcmV0dXJuIDA7Cn0K