
#include <bits/stdc++.h>
#include<math.h>
#include <string>
using namespace std;
const int MAXN = 100005;
//const int MOD = 1000000007;
const int INF = 0x3fffffff;//一个很大的数
int a[MAXN],leftMax[MAXN],rightMin[MAXN];
//ans记录所有主元,num为主元个数
int ans[MAXN],num = 0;
int main(){
int n;
cin>>n;
for(int i=0;i<n;++i){
cin>>a[i];
}
leftMax[0] = 0;//A[0]左边没有比它大的数
for(int i = 0;i<n;++i){
leftMax[i] = max(leftMax[i-1],a[i-1]);//由i-1 推的 i
}
rightMin[n-1] = INF;//A[n-1]右边没有比它小的数
for(int i=n-2;i>=0;--i){
rightMin[i] = min(rightMin[i+1],a[i+1]);
}
for(int i=0;i<n;++i){
//左边所有数比它小,右边所有数比它大
if(leftMax[i] < a[i] && rightMin[i] > a[i]){
ans[num++] = a[i];
}
}
cout<<num<<endl;
for(int i=0;i<num;++i){
cout<<ans[i];
if(i < num - 1){
cout<<" ";
}
}
cout<<endl;
system("pause");
return 0;
}