#include <iostream>
#include <vector>
using namespace std;
int n;
int tar[3][25];
int dir[4][2] = {{0,1}, {0,-1}, {1,0}, {-1,0}};
bool vis[25][25];
vector<int> route;
void dfs(int x, int y)
{
if(x == n && y == n)
{
for(int i = 0; i < 2; i++)
for(int j = 1; j <= n; j++)
if(tar[i][j] != 0)
return;
for(auto i : route)
cout << i << ' ';
exit(0);
}
for(int i = 0; i < 4; i++)
{
int xn = x + dir[i][0], yn = y + dir[i][1];
if(!vis[xn][yn] && tar[0][yn] && tar[1][xn])
{
vis[xn][yn] = true;
route.push_back((xn-1)*4 + yn-1);
tar[0][yn]--; tar[1][xn]--;
dfs(xn, yn);
vis[xn][yn] = false;
route.pop_back();
tar[0][yn]++; tar[1][xn]++;
}
}
}
int main()
{
cin >> n;
for(int i = 0; i < 2; i++)
for(int j = 1; j <= n; j++)
cin >> tar[i][j];
vis[1][1] = true;
route.push_back(0);
tar[0][1]--; tar[1][1]--;
dfs(1, 1);
return 0;
}