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<Integer> 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<n;i++) if(w[i]!=a[i]||r[i]!=b[i]) return false; return true; } }