include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
const int N=1000;
int a[N][N];
bool st[N][N];
int s[N];
int b[N];
int c[N];
int n,num;
int t1,t2;
int da[4]={0,0,1,-1};
int dax[4]={1,-1,0,0};
int flag=0;
void dfs(int x,int y,int k)
{
if(flag==1) return ;
s[k]=(x-1)*n+y-1;
if((x==n)&&(y==n)&&t1==1&&t2==1)
{
num=k;
flag=1;
return ;
}
for(int i=0;i<4;i)
{
int xx=x+da[i];
int yy=y+dax[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&!st[xx][yy]&&c[xx]>0&&b[yy]>0&&t1>0&&t2>0)
{
b[yy]–;
c[xx]–;
t1–;
t2–;
st[xx][yy]=true;
dfs(xx,yy,k+1);
b[yy];
c[xx];
t1;
t2;
st[xx][yy]=false;
}
}
}
int main()
{
cin >> n;
memset(st,false,sizeof(st));
for(int i=1;i<=n;i)
{
cin >> b[i];
t1+=b[i];
}
for(int i=1;i<=n;i)
{
cin >> c[i];
t2+=c[i];
}
st[1][1]=true;
dfs(1,1,1);
for(int i=1;i<=num;i)
{
cout << s[i] << ” “;
}
return 0;
}