#include <bits/stdc++.h>
using namespace std;
int n;
int a[111111], b[111111];
int c[111111], d[111111];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  if (n <= 2) {
    return puts("0"), 0;
  }
  for (int i = 1; i < n; i++) {
    b[i] = a[i] - a[i - 1];
  }
  bool flag = true;
  for (int i = 1; i < n; i++) {
    if (b[i] < 0) {
      flag = false;
      break;
    }
  }
  if (flag) {
    return puts("0"), 0;
  }
  flag = true;
  for (int i = 1; i < n; i++) {
    if (b[i] > 0) {
      flag = false;
      break;
    }
  }
  if (flag) {
    return puts("0"), 0;
  }
  for (int i = 0; i < n; i++) {
    if (i > 0) {
      c[i] = c[i - 1];
    } else {
      c[i] = INT_MAX;
    }
    c[i] = min(c[i], a[i]);
  }
  for (int i = n - 1; i >= 0; i--) {
    if (i < n - 1) {
      d[i] = d[i + 1];
    } else {
      d[i] = INT_MAX;
    }
    d[i] = min(d[i], a[i]);
  }
  for (int i = 1; i < n - 1; i++) {
    if (c[i - 1] < a[i] && d[i + 1] < a[i]) {
      printf("%d\n", 3);
      int p = 0;
      for (; a[p] >= a[i]; p++)
        ;
      int q = n - 1;
      for (; a[q] >= a[i]; q--)
        ;
      printf("%d %d %d\n", p + 1, i + 1, q + 1);
      return 0;
    }
  }
  for (int i = 0; i < n; i++) {
    if (i > 0) {
      c[i] = c[i - 1];
    } else {
      c[i] = -INT_MAX;
    }
    c[i] = max(c[i], a[i]);
  }
  for (int i = n - 1; i >= 0; i--) {
    if (i < n - 1) {
      d[i] = d[i + 1];
    } else {
      d[i] = -INT_MAX;
    }
    d[i] = max(d[i], a[i]);
  }
  for (int i = 1; i < n - 1; i++) {
    if (c[i - 1] > a[i] && d[i + 1] > a[i]) {
      printf("%d\n", 3);
      int p = 0;
      for (; a[p] <= a[i]; p++)
        ;
      int q = n - 1;
      for (; a[q] <= a[i]; q--)
        ;
      printf("%d %d %d\n", p + 1, i + 1, q + 1);
      return 0;
    }
  }
  assert(false);
}
