#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cmlsc.in");
ofstream g("cmlsc.out");
int M, N, i, a[1025], b[1025], c[1025], D[1025][1025], bst = 0, j;
int main()
{
f >> M>>N;
for (i = 1;i <= M;i++)
f >> a[i];
for (i = 1;i <= N;i++)
f >> b[i];
for (i = 1;i <= M;i++)
for (j = 1;j <= N;j++)
{
if (a[i] == b[j])
D[i][j] = 1 + D[i - 1][j - 1];
else
D[i][j] = (D[i - 1][j] > D[i][j - 1]) ? D[i - 1][j] : D[i][j - 1];
}
i = M;
j = N;
while (i >= 1 && j >= 1)
{
if (a[i] == b[j])
{
c[bst] = a[i];
bst++;
i--;
j--;
}
else
{
if (D[i - 1][j] < D[i][j - 1])
j--;
else
i--;
}
}
g << bst << endl;
for (i = bst-1;i >= 0;i--)
g << c[i] << " ";
}