D. НОВП
ограничение по времени на тест
1 second
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Эта задача отличается от той, которая предлагалась на онлайн-контесте.

Последовательность a1, a2, ..., an называется возрастающей, если ai < ai + 1 для i < n.

Последовательность s1, s2, ..., sk называется подпоследовательностью последовательности a1, a2, ..., an, если найдется такой набор индексов 1 ≤ i1 < i2 < ... < ik ≤ n, что aij = sj. Иными словами, последовательность s может быть получена из a путем вычеркивания некоторых элементов.

Вам задано две последовательности целых чисел. Найдите их наидлиннейшую общую возрастающую подпоследовательность, т.е. возрастающую последовательность наибольшей длины, которая является подпоследовательностью обеих последовательностей.

Входные данные

Первая строка содержит целое число n (1 ≤ n ≤ 500) - длину первой последовательности. Во второй строке записаны n целых чисел из диапазона [0, 109], разделенные пробелами — элементы первой последовательности. В третьей строке записано целое число m (1 ≤ m ≤ 500) - длина второй последовательности. Во четвертой строке записаны m целых чисел из диапазона [0, 109], разделенные пробелами — элементы второй последовательности.

Выходные данные

В первой строке выведите k — длину наидлиннейшей общей возрастающей подпоследовательности. Во второй строке выведите саму подпоследовательность. Элементы отделяйте друг от друга пробелами. Если решений несколько, то выведите любое.

Примеры
Входные данные
7
2 3 1 6 5 4 6
4
1 3 5 6
Выходные данные
3
3 5 6
Входные данные
5
1 2 0 2 1
3
1 0 1
Выходные данные
2
0 1