#include<stdio.h>
void merge(int arr[], int left, int m, int right) {
int i = left, j = m + 1;
int brr[right - left + 1];
int k = 0;
while (i <= m && j <= right) {
brr[k++] = arr[i] >= arr[j] ? arr[j++] : arr[i++];
}
while (i <= m) {
brr[k++] = arr[i++];
}
while (j <= right) {
brr[k++] = arr[j++];
}
for (i = 0; i < right - left + 1; i++) {
arr[left + i] = brr[i];
}
}
void f(int arr[], int left, int right) {
if (left == right) {
return;
}
int m = left + ((right - left) >> 1);
f(arr, left, m);
f(arr, m + 1, right);
merge(arr, left, m, right);
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int arr[n];
int brr[m];
int i=0;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<m;i++)
{
scanf("%d",&brr[i]);
}
f(brr,0,m-1);
for(i=0;i<n;i++)
{
int l=0,r=n-1;
int count=0;
while(l<r)
{
int mid=l+((r-l)>>1);
if(brr[mid]==arr[i])
{
count=1;
break;
}
else
{
if(brr[mid]>arr[i])
{
r=mid-1;
}
else
{
l=mid+1;
}
}
}
if(brr[l]==arr[i])
{
count=1;
}
if(count==1)
{
printf("%d ",arr[i]);
}
}
return 0;
}