#include <bits/stdc++.h>
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int lcm(int a, int b) { return ((a * b) / gcd(a, b)); }
using namespace std;
bool cmp(int a, int b) { return a > b; }
int main() {
  int a, b, c, i, j, k, tc, t;
  int n, m, cnt = 0;
  int eq = 1;
  int ara[100005];
  vector<int> vec, vec2, vec3;
  cin >> n;
  for (i = 0; i < n; i++) {
    scanf("%d", &ara[i]);
    vec.push_back(ara[i]);
    if (i != 0) {
      if (ara[i] != ara[i - 1]) eq = 0;
    }
  }
  if (n <= 2 || eq) {
    printf("-1");
  } else {
    vec2 = vec3 = vec;
    sort(vec2.begin(), vec2.end());
    sort(vec3.begin(), vec3.end(), cmp);
    int flg = 0;
    for (i = 1; i < n; i++) {
      if (ara[i] != ara[0]) {
        if (i == n - 1) {
          continue;
        }
        swap(vec[i], vec[0]);
        if (vec == vec2 || vec == vec3) {
          swap(vec[i], vec[0]);
          if (i - 1 > 0) {
            swap(vec[i], vec[i - 1]);
            if (vec != vec2 && vec != vec3) {
              printf("%d %d\n", i, i + 1);
              return 0;
            }
            swap(vec[i], vec[i - 1]);
          }
          continue;
        }
        printf("%d %d\n", 1, i + 1);
        return 0;
      }
    }
    for (i = n - 2; i >= 0; i--) {
      if (ara[i] != ara[n - 1]) {
        if (i == 0) {
          printf("-1\n");
          return 0;
        }
        swap(vec[i], vec[n - 1]);
        if (vec == vec2 || vec == vec3) {
          swap(vec[i], vec[n - 1]);
          swap(vec[i], vec[i + 1]);
          if (vec != vec2 && vec != vec3) {
            printf("%d %d", i + 1, i + 2);
            return 0;
          }
          swap(vec[i], vec[i + 1]);
          continue;
        }
        printf("%d %d\n", i + 1, n);
        return 0;
      }
    }
    printf("-1");
  }
  return 0;
}
