#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
****************************************************************/