#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int n;
int m;
int x[100000];
pair<int, int> y[100000];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &x[i]);
  m = 0;
  for (int i = 0; i < n; i++) {
    if (m >= 2 && x[i] == y[m - 1].first && x[i] == y[m - 2].first) continue;
    y[m++] = make_pair(x[i], i + 1);
  }
  n = m;
  int s1 = 0, s2 = 0;
  for (int i = 0; i + 1 < n; i++) {
    s1 += int(y[i].first > y[i + 1].first);
    s2 += int(y[i].first < y[i + 1].first);
  }
  for (int i = 0; i < n; i++)
    for (int j = 1; j <= 2 && i + j < n; j++) {
      if (y[i].first == y[i + j].first) continue;
      int t1 = s1, t2 = s2;
      for (int k = max(0, i - 1); k < min(n, i + j + 1); k++) {
        t1 -= int(y[k].first > y[k + 1].first);
        t2 -= int(y[k].first < y[k + 1].first);
      }
      swap(y[i], y[i + j]);
      for (int k = max(0, i - 1); k < min(n, i + j + 1); k++) {
        t1 += int(y[k].first > y[k + 1].first);
        t2 += int(y[k].first < y[k + 1].first);
      }
      swap(y[i], y[i + j]);
      if (t1 != 0 && t2 != 0) {
        printf("%d %d\n", y[i].second, y[i + j].second);
        return 0;
      }
    }
  printf("-1\n");
  return 0;
}
