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)
}