import java.util.*;
public class Main {
static boolean[][] d;
static int m, n, k;
static int max = 0;
static int sum = 0;
static int sum1 = 0;
static int[] a, b, r,w;
static int[][] map;
static boolean flag;
static List lists = new ArrayList<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
k=0;
map = new int[n][n];
d = new boolean[n][n];
a = new int[n];
b = new int[n];
r = new int[n];
w = new int[n];
r[0]=1;
w[0]=1;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++){
map[i][j]=k;
k++;
}
for (int i = 0; i < n; i++) {
a[i] = scanner.nextInt();
}
for (int i = 0; i < n; i++) {
b[i] = scanner.nextInt();
}
lists.add(0);
d[0][0]=true;
dfs(0,0);
}
public static void dfs(int i,int j) {
if (flag)
return;
if (i == n - 1 && j == n - 1) {
if (check()) {
flag = true;
System.out.print(lists.get(0));
for (int l = 1; l < lists.size(); l++) {
System.out.print(" " + lists.get(l));
}
}
return;
}
for (int k = 1; k <= 4; k++) {
if (k == 1) {
if (j + 1 < n && !d[i][j + 1]&&(r[i]+1<=b[i])&&(w[j+1]+1<=a[j+1])) {
d[i][j + 1] = true;
r[i]++;
w[j + 1]++;
lists.add(map[i][j + 1]);
dfs(i, j + 1);
d[i][j + 1] = false;
r[i]--;
w[j + 1]--;
lists.remove(lists.size() - 1);
}
}
if (k == 2) {
if (i + 1 < n && !d[i + 1][j]&&(r[i+1]+1<=b[i+1])&&(w[j]+1<=a[j])) {
d[i + 1][j] = true;
r[i + 1]++;
w[j]++;
lists.add(map[i + 1][j]);
dfs(i + 1, j);
d[i + 1][j] = false;
r[i + 1]--;
w[j]--;
lists.remove(lists.size() - 1);
}
}
if (k == 3) {
if (j - 1 >= 0 && !d[i][j - 1]&&(r[i]+1<=b[i])&&(w[j-1]+1<=a[j-1])) {
d[i][j - 1] = true;
r[i]++;
w[j - 1]++;
lists.add(map[i][j - 1]);
dfs(i, j - 1);
d[i][j - 1] = false;
r[i]--;
w[j - 1]--;
lists.remove(lists.size() - 1);
}
}
if (k == 4) {
if (i - 1 >= 0 && !d[i - 1][j]&&(r[i-1]+1<=b[i-1])&&(w[j]+1<=a[j])) {
d[i - 1][j] = true;
r[i - 1]++;
w[j]++;
lists.add(map[i - 1][j]);
dfs(i - 1, j);
d[i - 1][j] = false;
r[i - 1]--;
w[j]--;
lists.remove(lists.size() - 1);
}
}
}
}
public static boolean check(){
for(int i = 0;i