#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=100010;
const int INF=0x7fffffff;
int S[maxn];
int leftmax[maxn];
int rightmin[maxn];
void init(int n){
int max=0;
for(int i=1;i<=n;i++){
if(S[i]>max) max=S[i];
leftmax[i]=max;
}
int min=INF;
for(int i=n;i>=1;i--){
if(S[i]<min) min=S[i];
rightmin[i]=min;
}
}
int main(int argc, char** argv) {
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++) scanf("%d",&S[i]);
init(N);
int count=0;
for(int i=1;i<=N;i++){
if(S[i]>=leftmax[i] && S[i]<=rightmin[i]){
count++;
}
}
printf("%d\n",count);
for(int i=1;i<=N;i++){
if(S[i]>=leftmax[i] && S[i]<=rightmin[i]){
printf("%d",i);
count--;
if(count) printf(" ");
}
}
return 0;
}
#include <cstdio>
using namespace std;
const int maxn=100010;
const int INF=0x7fffffff;
int S[maxn];
int leftmax[maxn];
int rightmin[maxn];
void init(int n){
int max=0;
for(int i=1;i<=n;i++){
if(S[i]>max) max=S[i];
leftmax[i]=max;
}
int min=INF;
for(int i=n;i>=1;i--){
if(S[i]<min) min=S[i];
rightmin[i]=min;
}
}
int main(int argc, char** argv) {
int N;
scanf("%d",&N);
for(int i=1;i<=N;i++) scanf("%d",&S[i]);
init(N);
int count=0;
for(int i=1;i<=N;i++){
if(S[i]>=leftmax[i] && S[i]<=rightmin[i]){
count++;
}
}
printf("%d\n",count);
for(int i=1;i<=N;i++){
if(S[i]>=leftmax[i] && S[i]<=rightmin[i]){
printf("%d",i);
count--;
if(count) printf(" ");
}
}
return 0;
}