#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n;
int a[N], b[N];
int sta[10], pos[10];
int swap(int x, int y) {
  int t = a[x];
  a[x] = a[y];
  a[y] = t;
}
int judge() {
  int i;
  int ok = 1;
  for (i = 0; i < n; i++) {
    if (a[i] != b[i]) {
      ok = 0;
      break;
    }
  }
  if (ok) return 0;
  ok = 1;
  for (i = 0; i < n; i++) {
    if (a[i] != b[n - 1 - i]) {
      ok = 0;
      break;
    }
  }
  if (ok)
    return 0;
  else
    return 1;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    b[i] = a[i];
  }
  sort(b, b + n);
  if (n <= 2) {
    printf("-1\n");
    return 0;
  }
  if (n == 3) {
    if (a[0] == a[2]) {
      printf("-1\n");
      return 0;
    }
  }
  int i, j, len = 1;
  sta[0] = a[0];
  pos[0] = 0;
  for (i = 1; i < n && len < 3; i++) {
    if (a[i] != sta[0]) {
      if (len == 2 && a[i] != sta[1]) {
        sta[len] = a[i];
        pos[len++] = i;
      }
      if (len == 1) {
        sta[len] = a[i];
        pos[len++] = i;
      }
    }
  }
  if (len == 1) {
    printf("-1\n");
    return 0;
  }
  if (len == 2) {
    swap(pos[0], pos[1]);
    if (judge()) {
      printf("%d %d\n", pos[0] + 1, pos[1] + 1);
      return 0;
    }
    swap(pos[0], pos[1]);
    int cur = (pos[1] == 1) ? 2 : 1;
    printf("%d %d\n", cur + 1, pos[1] + 1);
    return 0;
  }
  for (i = 0; i < 3; i++) {
    for (j = i + 1; j < 3; j++) {
      swap(pos[i], pos[j]);
      if (judge()) {
        printf("%d %d\n", i + 1, j + 1);
        return 0;
      }
      swap(pos[i], pos[j]);
    }
  }
  return 0;
}
