#include <bits/stdc++.h>
std::map<long long, int> map;
std::pair<long long, int> input[200010];
int main(void) {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%I64d", &input[i].first);
    input[i].second = i;
  }
  if (n == 2) {
    printf("1\n");
    return 0;
  }
  std::sort(input + 1, input + 1 + n);
  for (int i = 2; i <= n; i++) {
    map[input[i].first - input[i - 1].first]++;
  }
  for (int i = 1; i <= n; i++) {
    if (i == 1) {
      map[input[2].first - input[1].first]--;
      if (map[input[2].first - input[1].first] == 0) {
        map.erase(input[2].first - input[1].first);
      }
      if (map.size() == 1) {
        printf("%d\n", input[1].second);
        return 0;
      }
      map[input[2].first - input[1].first]++;
    } else if (i == n) {
      map[input[n].first - input[n - 1].first]--;
      if (map[input[n].first - input[n - 1].first] == 0) {
        map.erase(input[n].first - input[n - 1].first);
      }
      if (map.size() == 1) {
        printf("%d\n", input[n].second);
        return 0;
      }
      map[input[n].first - input[n - 1].first]++;
    } else {
      map[input[i].first - input[i - 1].first]--;
      map[input[i + 1].first - input[i].first]--;
      if (map[input[i].first - input[i - 1].first] == 0)
        map.erase(input[i].first - input[i - 1].first);
      if (map[input[i + 1].first - input[i].first] == 0)
        map.erase(input[i + 1].first - input[i].first);
      map[input[i + 1].first - input[i - 1].first]++;
      if (map.size() == 1) {
        printf("%d\n", input[i].second);
        return 0;
      }
      map[input[i + 1].first - input[i - 1].first]--;
      if (map[input[i + 1].first - input[i - 1].first] == 0)
        map.erase(input[i + 1].first - input[i - 1].first);
      map[input[i].first - input[i - 1].first]++;
      map[input[i + 1].first - input[i].first]++;
    }
  }
  printf("-1\n");
  return 0;
}
