#include<bits/stdc++.h>
using namespace std;
int n,m,o=0,b[100010];
struct node
{
int p,i;
}a[100010],c[100010];
bool cmp(node a,node b)
{
return a.p<b.p;
}
bool dmp(node a,node b)
{
return a.i<b.i;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i].p);
a[i].i=i;
}
for(int i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
sort(a,a+n,cmp);
sort(b,b+n);
for(int i=0,j=0;i<n&&j<m;i++,j++)
{
begin :
if(i>=n||j>=m)
{
break;
}
if(a[i].p==b[j])
{
c[o].p=b[j];
c[o++].i=a[i].i;
continue;
}
else
{
if(a[i].p>b[j])
{
j++;
goto begin;
}
else
{
i++;
goto begin;
}
}
}
sort(c,c+o,dmp);
for(int i=0;i<o;i++)
{
printf("%d ",c[i].p);
}
return 0;
}
醉卧沙场君莫笑