#include <bits/stdc++.h>
#define taskname ""
#define ff first
#define ss second
using namespace std;
using ld = long double;
using ull = unsigned long long;
using ll = long long;
using pll = pair <ll, ll>;
using pii = pair <int, int>;
const char el = '\n';
const char sp = ' ';
const ll oo = 1e9; //1e18;
const ll maxN = 2e5 + 5;
int n, e, c = 0, a[maxN];
map <int, int> mp;

int main ()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    if (fopen(taskname".inp", "r"))
    {
        freopen(taskname".inp","r",stdin);
        freopen(taskname".out","w",stdout);
    }
    cin >> n;
    for(int i = 1;i <= n;++i)
    {
        cin >> a[i];
        mp[a[i]] = mp[a[i] - 1] + 1;
        if(c < mp[a[i]]) {
            c = mp[a[i]];
            e = a[i];
        }
    }
    cout << c << el;
    vector<int> vec;
    for(int i = n;i > 0;--i)
        if(a[i] == e) {
            vec.push_back(i);
            e--;
        }

    for(int i = vec.size() - 1;i >= 0;i--) cout << vec[i] << ' ';
}
