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