#include <bits/stdc++.h>
using namespace std;
vector<long long> a;
set<long long> znach;
const long long inf = 1e18;
long long n, mm = inf, MM = -inf, cnt = 0;
void chech(long long x, long long y) {
  vector<long long> b = a;
  swap(b[x], b[y]);
  long long i;
  bool f1 = true, f2 = true;
  for (i = 2; i <= n; i++)
    if (b[i] > b[i - 1]) {
      f1 = false;
      break;
    }
  for (i = 2; i <= n; i++)
    if (b[i] < b[i - 1]) {
      f2 = false;
      break;
    }
  if (!f1 && !f2) {
    cout << x << " " << y;
    exit(0);
  }
}
int main() {
  ios_base ::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  long long i, j;
  a.push_back(0);
  for (i = 1; i <= n; i++) {
    long long q;
    cin >> q;
    a.push_back(q);
    znach.insert(a[i]);
  }
  if (n < 3) {
    cout << -1;
    return 0;
  }
  if (znach.size() == 1) {
    cout << -1;
    return 0;
  }
  if (n < 100) {
    for (i = 1; i < n; i++)
      for (j = i + 1; j <= n; j++) {
        if (a[i] != a[j]) chech(i, j);
      }
    cout << -1;
    return 0;
  }
  if (znach.size() > 2) {
    for (i = 1; i <= n; i++) {
      mm = min(mm, a[i]);
      MM = max(MM, a[i]);
    }
    long long pos;
    for (i = 1; i <= n; i++)
      if (a[i] != mm && a[i] != MM) pos = i;
    if (a[1] != a[pos]) {
      cout << 1 << " " << pos;
      return 0;
    }
    if (a[n] != a[pos]) {
      cout << pos << " " << n;
      return 0;
    }
    long long p1, p2;
    for (i = 1; i <= n; i++) {
      if (a[i] == mm) p1 = i;
      if (a[i] == MM) p2 = i;
    }
    cout << p1 << " " << p2;
    return 0;
  }
  set<long long>::iterator ii;
  ii = znach.begin();
  long long one = *ii;
  ++ii;
  long long two = *ii;
  vector<long long> qwe, rty;
  for (i = 1; i <= n; i++)
    if (a[i] == one)
      qwe.push_back(i);
    else
      rty.push_back(i);
  srand(time(NULL));
  while (true) {
    long long ff = rand();
    long long ss = rand();
    ff = (ff * ff) % (qwe.size());
    ss = (ss * ss) % (rty.size());
    long long x = qwe[ff], y = rty[ss];
    chech(x, y);
  }
  return 0;
}
