#include <bits/stdc++.h>
using namespace std;
const int INF = INT_MAX;
const long long INFL = LLONG_MAX;
const int output_precision = 15;
const bool debug = true;
int mn, mx, N, A[100100];
int main() {
  ios_base::sync_with_stdio(0);
  cout.precision(output_precision);
  cout << fixed;
  cout.tie(0);
  cin >> N;
  for (int(i) = 1, j1234 = N; (i) <= j1234; (i)++) cin >> A[i];
  if (N <= 2) {
    cout << -1 << '\n';
    return 0;
  }
  int identical = 1;
  for (int(i) = 1, j1234 = N; (i) <= j1234; (i)++) identical &= A[1] == A[i];
  if (identical) {
    cout << -1 << '\n';
    return 0;
  }
  if (N <= 30) {
    for (int(i) = 1, j1234 = N; (i) <= j1234; (i)++)
      for (int(j) = 1, j1234 = N; (j) <= j1234; (j)++)
        if (i < j && A[i] != A[j]) {
          swap(A[i], A[j]);
          int sorted = 1;
          for (int(ii) = 1, j1234 = N - 1; (ii) <= j1234; (ii)++)
            sorted &= A[ii] <= A[ii + 1];
          if (sorted) {
            swap(A[i], A[j]);
            continue;
          }
          sorted = 1;
          for (int(ii) = 1, j1234 = N - 1; (ii) <= j1234; (ii)++)
            sorted &= A[ii] >= A[ii + 1];
          if (sorted) {
            swap(A[i], A[j]);
            continue;
          }
          cout << i << " " << j << '\n';
          return 0;
        }
  } else {
    for (int i = 1; i <= N - 1; i++) {
      if (A[i] == A[i + 1]) continue;
      swap(A[i], A[i + 1]);
      int sorted = 1;
      for (int ii = i - 1; ii <= i + 1; ii++)
        if (1 <= ii && ii + 1 <= N) sorted &= A[ii] <= A[ii + 1];
      if (sorted) {
        swap(A[i], A[i + 1]);
        continue;
      }
      sorted = 1;
      for (int ii = i - 1; ii <= i + 1; ii++)
        if (1 <= ii && ii + 1 <= N) sorted &= A[ii] >= A[ii + 1];
      if (sorted) {
        swap(A[i], A[i + 1]);
        continue;
      }
      cout << i << " " << i + 1 << '\n';
      return 0;
    }
  }
  cout << -1 << '\n';
  return 0;
}
