#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cout.tie(NULL);
  cin.tie(NULL);
  int n, i, j, k;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  map<int, vector<int> > M;
  for (int i = 0; i < n; i++) M[a[i]].push_back(i);
  vector<vector<int> > dp(n, vector<int>(2, -1));
  int maxi = -1;
  for (int i = 0; i < n; i++) {
    dp[i][0] = 1;
    if (M.find(a[i] - 1) != M.end()) {
      auto it = upper_bound(M[a[i] - 1].begin(), M[a[i] - 1].end(), i);
      if (it != M[a[i] - 1].begin()) {
        it--;
        int ind = *it;
        dp[i][1] = ind;
        dp[i][0] += dp[ind][0];
      }
    }
    maxi = max(maxi, dp[i][0]);
  }
  cout << maxi << "\n";
  vector<int> ans;
  for (int i = 0; i < n; i++) {
    int ind;
    if (dp[i][0] == maxi) {
      ind = i;
      ans.push_back(ind + 1);
      while (dp[ind][1] != -1) {
        ans.push_back(dp[ind][1] + 1);
        ind = dp[ind][1];
      }
      break;
    }
  }
  reverse(ans.begin(), ans.end());
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
}
