package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
for {
// 大数据读入时,性能比较高
scanner := bufio.NewScanner(os.Stdin)
// 设置大缓冲区,防止大输入时出错
buf := make([]byte, 1024*1024) // 1MB
scanner.Buffer(buf, 1024*1024)
scanner.Split(bufio.ScanWords) // 按单词扫描(空格、换行等分隔)
// 读取第一行:n
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
if n == 0 {
break
}
arr1 := make([]int, n)
for i := 0; i < n; i++ {
scanner.Scan()
arr1[i], _ = strconv.Atoi(scanner.Text())
}
scanner.Scan()
n2, _ := strconv.Atoi(scanner.Text())
if n2 == 0 {
break
}
arr2 := make([]int, n2)
for i := 0; i < n2; i++ {
scanner.Scan()
arr2[i], _ = strconv.Atoi(scanner.Text())
}
i, j := 0, 0
for i < len(arr1) && j < len(arr2) {
if arr1[i] < arr2[j] {
i++
} else if arr1[i] > arr2[j] {
j++
} else {
fmt.Printf("%d ", arr1[i])
i++
j++
}
}
fmt.Println()
}
}