#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > vec;
int pos[200005];
int a[200005], b[200005], c[200005];
bool pr[200005], sf[200005];
bool Check(int a, int b) {
  if (a == -1) return true;
  if (b == -1) return true;
  if (a == b) return true;
  return false;
}
int main() {
  int n;
  scanf("%d", &n);
  if (n <= 3) {
    printf("1");
    return 0;
  }
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]), vec.push_back({a[i], i});
  sort(a + 1, a + n + 1);
  sort(vec.begin(), vec.end());
  b[1] = -1;
  for (int i = 2; i <= n; i++) b[i] = a[i] - a[i - 1];
  c[n] = -1;
  for (int i = 1; i < n; i++) c[i] = a[i + 1] - a[i];
  pr[1] = pr[2] = true;
  for (int i = 3; i <= n; i++)
    if (b[i] == b[i - 1] && pr[i - 1]) pr[i] = true;
  sf[n] = sf[n - 1] = true;
  for (int i = n - 2; i >= 1; i--)
    if (c[i] == c[i + 1] && sf[i + 1]) sf[i] = true;
  if (sf[2]) {
    printf("%d", vec[0].second);
    return 0;
  }
  if (pr[n - 1]) {
    printf("%d", vec[n - 1].second);
    return 0;
  }
  for (int i = 2; i < n; i++) {
    if (pr[i - 1] && sf[i + 1]) {
      int d1 = b[i - 1];
      int d2 = c[i + 1];
      int d = a[i + 1] - a[i - 1];
      bool Flag = Check(d, d1) && Check(d1, d2) && Check(d, d2);
      if (!Flag) continue;
      printf("%d", vec[i - 1].second);
      return 0;
    }
  }
  printf("-1");
}
