← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func check(p, a, b []int, n int) bool {
	freq := make([]int, n+1)
	ca, cb := 0, 0
	for i, v := range p {
		if v < 1 || v > n {
			return false
		}
		freq[v]++
		if v != a[i] {
			ca++
		}
		if v != b[i] {
			cb++
		}
	}
	if ca != 1 || cb != 1 {
		return false
	}
	for v := 1; v <= n; v++ {
		if freq[v] != 1 {
			return false
		}
	}
	return true
}

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	fmt.Fscan(in, &n)

	a := make([]int, n)
	b := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &a[i])
	}
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &b[i])
	}

	diff := make([]int, 0, 2)
	for i := 0; i < n; i++ {
		if a[i] != b[i] {
			diff = append(diff, i)
		}
	}

	ans := make([]int, n)

	if len(diff) == 1 {
		x := diff[0]
		copy(ans, a)
		used := make([]bool, n+1)
		for i := 0; i < n; i++ {
			if i != x {
				used[a[i]] = true
			}
		}
		for v := 1; v <= n; v++ {
			if !used[v] {
				ans[x] = v
				break
			}
		}
		if !check(ans, a, b, n) {
			for v := 1; v <= n; v++ {
				ans[x] = v
				if check(ans, a, b, n) {
					break
				}
			}
		}
	} else {
		x, y := diff[0], diff[1]

		copy(ans, a)
		ans[y] = b[y]
		if !check(ans, a, b, n) {
			copy(ans, a)
			ans[x] = b[x]
		}
	}

	for i := 0; i < n; i++ {
		if i > 0 {
			fmt.Fprint(out, " ")
		}
		fmt.Fprint(out, ans[i])
	}
	fmt.Fprintln(out)
}