#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int m=n;
int a[n];
int b[n]={0};
cin>>a[0];
int max=a[0];
for(int i=1;i<n;i++){
cin>>a[i];
if(max>a[i]){
m--;
b[i]=1;
}else{
max=a[i];
}
}
int min=a[n-1];
for(int i=n-2;i>=0;i--){
if(min<a[i]){
if(b[i]==0){ //防止多减
m--;
b[i]=1;
}
}else{
min=a[i];
}
}
cout<<m<<endl;
int o=0;
for(int i=0;i<n;i++){
if(b[i]==0){
if(o==0){
cout<<a[i];
o=1;
}else{
cout<<" "<<a[i];
}
}
}
cout<<endl; //测试点2要一个换行
}
08-15
1196

08-18
760
