#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
int a[330000], n, ans[330000], cnt;
long long dp[330000];
int main() {
  scanf("%d", &n);
  int i, j, s, p, q;
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  dp[n - 1] = 0;
  dp[n] = 0;
  for (i = n - 2; i >= 0; i--) {
    dp[i] = min(dp[i + 2] + a[i + 1],
                dp[i + 3] + a[i + 2] + min(a[i], max(0, a[i + 1] - a[i + 2])));
    dp[i] = min(dp[i], dp[i + 1] + a[i]);
  }
  i = 0;
  cnt = 0;
  while (i < n) {
    if (dp[i] !=
            dp[i + 3] + a[i + 2] + min(a[i], max(0, a[i + 1] - a[i + 2])) &&
        dp[i] != dp[i + 1] + a[i]) {
      if (min(a[i], a[i + 1]) != 0) ans[cnt++] = i;
      if (a[i + 1] > a[i]) ans[cnt++] = i + 1;
      i = i + 2;
    } else if (dp[i] != dp[i + 1] + a[i]) {
      if (min(a[i + 1], a[i + 2]) != 0) ans[cnt++] = i + 1;
      if (min(a[i], max(0, a[i + 1] - a[i + 2])) != 0) ans[cnt++] = i;
      if (a[i + 1] < a[i + 2]) ans[cnt++] = i + 2;
      i = i + 3;
    } else {
      if (min(a[i], a[i + 1]) != 0) ans[cnt++] = i;
      i = i + 1;
    }
  }
  printf("%d\n", cnt);
  for (i = 0; i < cnt; i++) printf("%d\n", ans[i] + 1);
  return 0;
}
