You are given an array a consisting of n integers a_1, a_2, ..., a_n.

Your problem is to find such pair of indices i, j (1 ≤ i < j ≤ n) that lcm(a_i, a_j) is minimum possible.

lcm(x, y) is the least common multiple of x and y (minimum positive number such that both x and y are divisors of this number).

Input

The first line of the input contains one integer n (2 ≤ n ≤ 10^6) — the number of elements in a.

The second line of the input contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^7), where a_i is the i-th element of a.

Output

Print two integers i and j (1 ≤ i < j ≤ n) such that the value of lcm(a_i, a_j) is minimum among all valid pairs i, j. If there are multiple answers, you can print any.

Examples

Input


5
2 4 8 3 6


Output


1 2


Input


5
5 2 11 3 7


Output


2 4


Input


6
2 5 10 1 10 2


Output


1 4
#include <bits/stdc++.h>
using namespace std;
const int N = 10000001;
const int M = N << 1;
int n, a[N], b[N][2], c[N];
inline void read(int &x) {
  char ch = getchar();
  x = 0;
  int w = 0;
  for (; ch < '0' || ch > '9'; ch = getchar())
    if (ch == '-') w = 1;
  for (; ch >= '0' && ch <= '9'; ch = getchar())
    x = (x << 3) + (x << 1) + ch - '0';
  if (w) x = -x;
}
int main() {
  read(n);
  int x, mx = 0, xx;
  long long ans = 1e18;
  for (int i = (1); i <= (n); i++) {
    read(x);
    a[i] = x;
    mx = max(mx, x);
    if (c[x])
      ans = min(ans, 1LL * x);
    else
      c[x] = 1;
  }
  x = xx = 0;
  for (int i = (1); i <= (mx); i++) {
    int mn = 1e7 + 1, mnn = 1e7 + 1;
    for (int j = i; j <= mx; j += i)
      if (c[j]) {
        if (j < mnn) mnn = j;
        if (mnn < mn)
          swap(mn, mnn);
        else
          break;
      }
    if (mn <= 1e7 && mnn <= 1e7 && 1LL * mn / i * mnn <= ans) {
      ans = 1LL * mn / i * mnn;
      x = mn, xx = mnn;
    }
  }
  if (x == 0 && xx == 0) x = xx = ans;
  int flag1 = 0, flag2 = 0;
  for (int i = (1); i <= (n); i++)
    if (a[i] == x && !flag1)
      printf("%d ", i), flag1 = 1;
    else if (a[i] == xx && !flag2)
      printf("%d ", i), flag2 = 1;
  return 0;
}
