#include<bits/stdc++.h>
using namespace std;
int a[1000005],b[1000005],x,n,m;
bool falg = false;
void f(int l,int r,int x)
{
	if(l > r)
	{
		return;
	}
	int mid = (l + r) >> 1;
	if(a[mid] == x)
	{
		falg = true;
		return;
	}
	else if(a[mid] > x)
	{
		f(l,mid - 1,x);
	}
	else if(a[mid] < x)
	{
		f(mid + 1,r,x);
	}
}
int main(){
	cin >> n >> m;
	for(int i = 1; i <= n; i++) scanf("%d",&a[i]);
	for(int i = 1; i <= m; i++) scanf("%d",&b[i]);
	sort(a+1,a +n+1);
	sort(b+1,b+m+1);
	for(int i = 1; i <= m; i++)
	{
		f(1,m,b[i]);
		if(falg== true)
		{
			printf("%d ",b[i]);
		}
	}
	return 0;
}
/**************************************************************
	Problem: 1898
	User: yangwanning
	Language: C++
	Result: Output Limit Exceed
****************************************************************/