#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("file.in");
ofstream fout("file.out");
vector<int> vec;
int num[1000], sum[1000];
int n, aux;
int main(){
fin >> n;
for(int i = 0; i < n; i++){
fin >> aux;
vec.push_back(aux);
}
//cout << "1\n";
num[n-1] = 1;
sum[n-1] = vec[n-1];
int j;
for(int i = n - 2; i >= 0; i--){
j = i + 1;
while(j < n){
if(vec[i] < vec[j]){
num[i] = num[j] + 1;
sum[i] = vec[i] + sum[j];
j = n;
}
j++;
}
}
/*
for(int i = 0; i < n; i++){
cout << num[i] << ", " << sum[i] << "\n";
}
*/
int maxim1 = num[0];
int maxim2 = sum[0];
int poz = 0;
for(int i = 1; i < n; i++){
if(maxim1 < num[i]){
maxim1 = num[i];
maxim2 = sum[i];
poz = i;
} else if(maxim1 == num[i]){
if(sum[poz] < sum[i]){
maxim2 = sum[i];
poz = i;
}
}
}
cout << num[poz] << "\n";
for(int i = poz; i < n; i++){
if(num[i] == maxim1){
cout << vec[i] << " ";
maxim1--;
}
if(maxim1 == 0)break;
}
//cout << "suma: " << maxim2 << "\n";
return 0;
}