#include <bits/stdc++.h>
using namespace std;
int N, M;
int A[501], B[501], D[501];
int RES[501][2];
void Print(int i) {
  if (RES[i][1] >= 0) Print(RES[i][1]);
  printf("%d ", B[i]);
}
int main() {
  int i, j;
  scanf("%d", &N);
  for (i = 0; i < N; i++) scanf("%d", &A[i]);
  scanf("%d", &M);
  for (i = 0; i < M; i++) scanf("%d", &B[i]);
  for (i = 0; i < M; i++) {
    D[i] = 0;
    RES[i][0] = RES[i][1] = -1;
  }
  int a, b = -1;
  for (i = 0; i < N; i++) {
    a = 0;
    b = -1;
    for (j = 0; j < M; j++) {
      if (A[i] == B[j]) {
        if (a + 1 > D[j]) {
          RES[j][0] = i;
          RES[j][1] = b;
          D[j] = a + 1;
        }
      } else if (B[j] < A[i]) {
        if (D[j] > a) {
          a = D[j];
          b = j;
        }
      }
    }
  }
  j = 0;
  for (i = 1; i < M; i++)
    if (D[i] > D[j]) j = i;
  printf("%d\n", D[j]);
  if (D[j] != 0) Print(j);
  return 0;
}
