#include <bits/stdc++.h>
using namespace std;
struct flags_t {
  flags_t() : asc(true), desc(true), eq(true){};
  bool asc;
  bool desc;
  bool eq;
};
static struct flags_t checkarray(const vector<int>& v) {
  flags_t res;
  int prevelem = 0;
  for (int i = 0; i < (v.size()); ++i) {
    if (0 == i) {
      prevelem = v[i];
    } else {
      res.asc = res.asc && (v[i] >= prevelem);
      res.desc = res.desc && (v[i] <= prevelem);
      res.eq = res.eq && (v[i] == prevelem);
      prevelem = v[i];
    }
  }
  return res;
}
int main(int argc, char** argv) {
  int n;
  cin >> n;
  if (n < 3) {
    do {
      cout << -1 << endl;
      return 0;
    } while (0);
  }
  vector<int> v(n, 0);
  int prevelem;
  bool asc = true, desc = true, eq = true;
  for (int i = 0; i < (n); ++i) {
    cin >> v[i];
    if (0 == i) {
      prevelem = v[i];
    } else {
      asc = asc && (v[i] >= prevelem);
      desc = desc && (v[i] <= prevelem);
      eq = eq && (v[i] == prevelem);
      prevelem = v[i];
    }
  }
  if (eq) {
    do {
      cout << -1 << endl;
      return 0;
    } while (0);
  }
  for (int i = 0; i < (n - 1); ++i) {
    for (int j = i + 1; j < n; j++) {
      if (v[i] != v[j]) {
        swap(v[i], v[j]);
        flags_t r = checkarray(v);
        if (!r.asc && !r.desc) {
          do {
            cout << i + 1 << ' ' << j + 1 << endl;
            return 0;
          } while (0);
        }
        swap(v[i], v[j]);
      }
    }
  }
  do {
    cout << -1 << endl;
    return 0;
  } while (0);
}
