n soldiers stand in a circle. For each soldier his height ai is known. A reconnaissance unit can be made of such two neighbouring soldiers, whose heights difference is minimal, i.e. |ai - aj| is minimal. So each of them will be less noticeable with the other. Output any pair of soldiers that can form a reconnaissance unit.

Input

The first line contains integer n (2 ≤ n ≤ 100) — amount of soldiers. Then follow the heights of the soldiers in their order in the circle — n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 1000). The soldier heights are given in clockwise or counterclockwise direction.

Output

Output two integers — indexes of neighbouring soldiers, who should form a reconnaissance unit. If there are many optimum solutions, output any of them. Remember, that the soldiers stand in a circle.

Examples

Input

5
10 12 13 15 10


Output

5 1


Input

4
10 20 30 40


Output

1 2
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = int(1e5 + 3);
template <typename T>
void printV(vector<T> v, char sep) {
  for (long long unsigned int i = 0; i < v.size() - 1; i++) {
    cout << v[i] << sep;
  }
  cout << v[v.size() - 1];
}
void printVPCI(vector<pair<char, int>> s) {
  for (long long unsigned int i = 0; i < s.size(); i++) {
    cout << s[i].first << " " << s[i].second << "\n";
  }
}
void cdPr(bool a) { cout << (a ? "YES" : "NO"); }
bool isPrime(int n) {
  for (int i = 2; i <= n / 2; ++i) {
    if (n % i == 0) {
      return false;
    }
  }
  return true;
}
template <typename T>
bool vFind(vector<T> v, T x) {
  return find(v.begin(), v.end(), x) != v.end();
}
vector<pair<char, int>> strInfo(string s) {
  vector<char> f;
  vector<pair<char, int>> r;
  for (long long unsigned int i = 0; i < s.size(); i++) {
    if (!vFind(f, s[i])) {
      f.push_back(s[i]);
      r.push_back(make_pair(s[i], count(s.begin(), s.end(), s[i])));
    }
  }
  return r;
}
vector<char> distinctChars(string s) {
  vector<char> f;
  for (long long unsigned int i = 0; i < s.size(); i++) {
    if (!vFind(f, s[i])) f.push_back(s[i]);
  }
  return f;
}
void solve() {
  int n;
  cin >> n;
  int pos[MAX_N] = {0};
  int t = n;
  int a;
  cin >> a;
  int i = 1;
  n--;
  int min = 99999999;
  int r = 0;
  pos[0] = a;
  int x;
  while (n > 0) {
    cin >> x;
    pos[i] = x;
    if (abs(a - x) < min) {
      min = abs(a - x);
      r = i;
    }
    a = x;
    i++;
    n--;
  }
  if (abs(x - pos[0]) < min) {
    r = t;
  }
  cout << (r) << " " << ((r + 1 > t) ? (r + 1 - t) : (r + 1)) << "\n";
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  solve();
  return 0;
}
