#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 5;
const double E = 1e-6;
const long long ll1 = 1;
int n;
vector<int> v;
bool isSorted(vector<int> &v) {
  vector<int> tmp = v;
  sort(tmp.begin(), tmp.end());
  bool b1 = (tmp == v);
  reverse(tmp.begin(), tmp.end());
  bool b2 = (tmp == v);
  return (b1 || b2);
}
set<int> used;
vector<int> id;
void Solve3() {
  for (int i = 0; i < 3; ++i) {
    for (int j = i + 1; j < 3; ++j) {
      swap(v[id[i]], v[id[j]]);
      if (!isSorted(v)) {
        cout << id[i] + 1 << " " << id[j] + 1 << endl;
        exit(0);
      }
      swap(v[id[i]], v[id[j]]);
    }
  }
  assert(false);
}
void Solve2() {
  int e[2] = {v[id[0]], v[id[1]]};
  vector<int> cid[2];
  for (int i = 0; i < n; ++i)
    for (int t = 0; t < 2; ++t)
      if (e[t] == v[i]) cid[t].push_back(i);
  for (int t1 = 0; t1 < cid[0].size(); ++t1) {
    for (int t2 = 0; t2 < cid[1].size(); ++t2) {
      swap(v[cid[0][t1]], v[cid[1][t2]]);
      if (!isSorted(v)) {
        cout << cid[0][t1] + 1 << " " << cid[1][t2] + 1 << endl;
        exit(0);
      }
      swap(v[cid[0][t1]], v[cid[1][t2]]);
    }
  }
  cout << -1;
  exit(0);
}
int main() {
  cin >> n;
  v.resize(n);
  for (int i = 0; i < n; ++i) cin >> v[i];
  for (int i = 0; i < n; ++i) {
    if (!used.count(v[i])) {
      id.push_back(i);
      used.insert(v[i]);
    }
  }
  if (used.size() >= 3) {
    Solve3();
  } else if (used.size() == 2) {
    Solve2();
  } else {
    cout << -1;
  }
  return 0;
}
