#include <bits/stdc++.h>
using namespace std;
map<int, int> m;
int a[1000000];
int maxx, ind, i, j, n;
bool check1() {
  for (int i = 1; i < n; i++)
    if (a[i] > a[i + 1]) return false;
  return true;
}
bool check2() {
  for (int i = 1; i < n; i++)
    if (a[i] < a[i + 1]) return false;
  return true;
}
int main() {
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
    m[a[i]]++;
  }
  if (m[a[1]] == n) {
    cout << -1 << endl;
    return 0;
  }
  if (n <= 100) {
    for (i = 1; i <= n; i++)
      for (j = i + 1; j <= n; j++)
        if (a[i] != a[j]) {
          swap(a[i], a[j]);
          if (!(check1() || check2())) {
            cout << i << " " << j << endl;
            return 0;
          }
          swap(a[i], a[j]);
        }
    cout << -1 << endl;
    return 0;
  }
  maxx = -1000000000;
  for (i = 1; i <= n; i++)
    if (maxx < a[i]) {
      maxx = a[i];
      ind = i;
    }
  if (ind > 1) {
    swap(a[1], a[ind]);
    if (!(check1() || check2())) {
      cout << 1 << " " << ind << endl;
      return 0;
    }
    swap(a[1], a[ind]);
  }
  for (i = 3; i <= n; i++)
    if (a[i] != a[2]) {
      swap(a[2], a[i]);
      if (!(check1() || check2())) {
        cout << 2 << " " << i << endl;
        return 0;
      }
      swap(a[2], a[i]);
    }
  maxx = 1000000000;
  for (i = 1; i <= n; i++)
    if (maxx > a[i]) {
      maxx = a[i];
      ind = i;
    }
  if (ind < n) {
    swap(a[n], a[ind]);
    if (!(check1() || check2())) {
      cout << n << " " << ind << endl;
      return 0;
    }
    swap(a[n], a[ind]);
  }
  for (i = 1; i <= n - 2; i++)
    if (a[i] != a[n - 1]) {
      swap(a[n - 1], a[i]);
      if (!(check1() || check2())) {
        cout << n - 1 << " " << i << endl;
        return 0;
      }
      swap(a[n - 1], a[i]);
    }
  cout << -1 << endl;
}
