#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int n;
bool is_from_small_to_high() {
  for (int i = 1; i < n; i++) {
    if (v[i] < v[i - 1]) {
      return false;
    }
  }
  return true;
}
bool is_from_high_to_small() {
  for (int i = 1; i < n; i++) {
    if (v[i] > v[i - 1]) {
      return false;
    }
  }
  return true;
}
int main() {
  scanf("%d", &n);
  v.clear();
  set<int> s;
  for (int i = 0; i < n; i++) {
    int tmp;
    scanf("%d", &tmp);
    v.push_back(tmp);
    s.insert(tmp);
  }
  if (s.size() == 1) {
    printf("-1\n");
    return 0;
  }
  if (n <= 100) {
    int f = -1;
    int s = -1;
    for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
        if (v[i] == v[j]) {
          continue;
        }
        swap(v[i], v[j]);
        if (!(is_from_high_to_small() || is_from_small_to_high())) {
          f = i + 1;
          s = j + 1;
          break;
        }
        swap(v[i], v[j]);
      }
      if (f != -1) {
        break;
      }
    }
    if (f == -1) {
      printf("-1\n");
    } else {
      printf("%d %d\n", f, s);
    }
    return 0;
  }
  if (s.size() == 2) {
    vector<int> lol(2);
    int a = 0;
    for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
      lol[a] = (*it);
      a++;
    }
    vector<int> pos1;
    vector<int> pos2;
    for (int i = 0; i < n; i++) {
      if (v[i] == lol[0]) {
        pos1.push_back(i);
      }
      if (v[i] == lol[1]) {
        pos2.push_back(i);
      }
    }
    for (int i = 0; i < pos1.size(); i++) {
      for (int j = 0; j < pos2.size(); j++) {
        int idx1 = pos1[i];
        int idx2 = pos2[j];
        swap(v[idx1], v[idx2]);
        if (!(is_from_high_to_small() || is_from_small_to_high())) {
          printf("%d %d\n", idx1 + 1, idx2 + 1);
          return 0;
        }
        swap(v[idx1], v[idx2]);
      }
    }
    printf("-1\n");
    return 0;
  }
  vector<int> pos1;
  vector<int> pos2;
  vector<int> pos3;
  vector<int> lol(3);
  int a = 0;
  for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
    lol[a] = (*it);
    a++;
    if (a == 3) {
      break;
    }
  }
  for (int i = 0; i < n; i++) {
    if (v[i] == lol[0]) {
      pos1.push_back(i);
    }
    if (v[i] == lol[1]) {
      pos2.push_back(i);
    }
    if (v[i] == lol[2]) {
      pos3.push_back(i);
    }
  }
  int idx1 = pos1[0];
  int idx2 = pos2[0];
  int idx3 = pos3[0];
  swap(v[idx1], v[idx2]);
  if (!(is_from_high_to_small() || is_from_small_to_high())) {
    printf("%d %d\n", idx1 + 1, idx2 + 1);
    return 0;
  }
  printf("%d %d\n", idx1 + 1, idx3 + 1);
  return 0;
}
