#include <cstdio>
using namespace std;
#define FILEIN "scmax.in"
#define FILEOUT "scmax.out"
#define NMAX 100005
int A[NMAX], D[NMAX], Pre[NMAX], Sol[NMAX], N;
int main() {
freopen(FILEIN, "r", stdin);
freopen(FILEOUT, "w", stdout);
scanf("%d", &N);
for ( int i = 1; i <= N; i++ ) scanf("%d", &A[i]);
int MaxI = 0;
for ( int i = 1; i <= N; i++ ) {
D[i] = 1;
for ( int j = 0; j < i; j++ ) {
if (A[j] < A[i] && D[j] + 1 > D[i])
D[i] = D[j] + 1, Pre[i] = j;
}
if (D[i] > D[MaxI])
MaxI = i;
}
int k = 0;
for ( int i = MaxI; i; i = Pre[i]) {
Sol[++k] = A[i];
}
printf("%d\n", D[MaxI]);
for ( int i = k; i; i-- ) {
printf("%d ", Sol[i]);
}
printf("\n");
return 0;
}