#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=500;
ll a[N],b[N],n,m;
void input()
{
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)cin>>b[i];
}
ll len[N][N];
void Dp()
{
for(int i=1;i<=n;i++)len[i][0]=0;
for(int i=1;i<=m;i++)len[0][i]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i]==b[j])len[i][j]=len[i-1][j-1]+1;
else len[i][j]=max(len[i-1][j],len[i][j-1]);
}
cout<<len[n][m]<<"\n";
}
void Trace()
{
ll i=n,j=m;
vector<ll> ans;
while(i>0&&j>0)
{
if(a[i]==b[j])
{
ans.push_back(a[i]);
i--;
j--;
}
else if(len[i][j]==len[i][j-1])j--;
else i--;
}
for(int i=ans.size()-1;i>=0;i--)cout<<ans[i]<<" ";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
input();
Dp();
Trace();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE49NTAwOwpsbCBhW05dLGJbTl0sbixtOwp2b2lkIGlucHV0KCkKewogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspY2luPj5hW2ldOwogICAgZm9yKGludCBpPTE7aTw9bTtpKyspY2luPj5iW2ldOwp9CmxsIGxlbltOXVtOXTsKdm9pZCBEcCgpCnsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKWxlbltpXVswXT0wOwogICAgZm9yKGludCBpPTE7aTw9bTtpKyspbGVuWzBdW2ldPTA7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICBmb3IoaW50IGo9MTtqPD1tO2orKykKICAgICB7CiAgICAgICAgIGlmKGFbaV09PWJbal0pbGVuW2ldW2pdPWxlbltpLTFdW2otMV0rMTsKICAgICAgICAgZWxzZSBsZW5baV1bal09bWF4KGxlbltpLTFdW2pdLGxlbltpXVtqLTFdKTsKICAgICB9CiAgICBjb3V0PDxsZW5bbl1bbV08PCJcbiI7Cn0Kdm9pZCBUcmFjZSgpCnsKICAgIGxsIGk9bixqPW07CiAgICB2ZWN0b3I8bGw+IGFuczsKICAgIHdoaWxlKGk+MCYmaj4wKQogICAgewogICAgICAgIGlmKGFbaV09PWJbal0pCiAgICAgICAgewogICAgICAgICAgICBhbnMucHVzaF9iYWNrKGFbaV0pOwogICAgICAgICAgICBpLS07CiAgICAgICAgICAgIGotLTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihsZW5baV1bal09PWxlbltpXVtqLTFdKWotLTsKICAgICAgICBlbHNlIGktLTsKICAgIH0KICAgIGZvcihpbnQgaT1hbnMuc2l6ZSgpLTE7aT49MDtpLS0pY291dDw8YW5zW2ldPDwiICI7Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW5wdXQoKTsKICAgIERwKCk7CiAgICBUcmFjZSgpOwogICAgcmV0dXJuIDA7Cn0=