#include <bits/stdc++.h>
using namespace std;
map<long long, vector<long long> > mp1;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, k, m, x, y;
  cin >> n;
  long long arr[n + 1];
  map<long long, long long> mp;
  for (int i = (0); i <= (n - 1); ++i) {
    cin >> arr[i];
    mp1[arr[i]].push_back(i);
  }
  mp[arr[0]] = 1;
  long long lsz = 1;
  long long lidx = arr[0];
  for (int i = (1); i <= (n - 1); ++i) {
    mp[arr[i]] = mp[arr[i] - 1] + 1;
    if (lsz < mp[arr[i]]) {
      lsz = mp[arr[i]];
      lidx = arr[i];
    }
  }
  cout << lsz << "\n";
  long long ff = lidx - lsz;
  long long pp = 0;
  for (int i = (1); i <= (lsz); ++i) {
    long long val = ff + i;
    long long low = 0;
    long long high = mp1[val].size() - 1;
    long long ans1 = 0;
    while (low <= high) {
      long long mid = low + high >> 1;
      if (mp1[val][mid] >= pp) {
        ans1 = mp1[val][mid];
        high = mid - 1;
      } else
        low = mid + 1;
    }
    pp = ans1;
    cout << pp + 1 << " ";
  }
  return 0;
}
