#include <bits/stdc++.h>
using namespace std;
struct node {
  int tot;
  int l, r;
};
map<int, node> mm;
inline int getInt() {
  char ch = getchar();
  while (ch > '9' || ch < '0') ch = getchar();
  int num = 0;
  while (ch <= '9' && ch >= '0') {
    num = num * 10 + (ch - '0');
    ch = getchar();
  }
  return num;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n = getInt();
  for (int i = 1; i <= n; i++) {
    int x = getInt();
    mm[x].tot++;
    if (mm[x].l == 0) {
      mm[x].l = i;
      mm[x].r = i;
    } else {
      mm[x].r = i;
    }
  }
  int maxnum = 0;
  int maxl = 0, maxr = 0;
  for (auto a : mm) {
    if (a.second.tot > maxnum) {
      maxnum = a.second.tot;
      maxl = a.second.l;
      maxr = a.second.r;
    } else if (a.second.tot == maxnum &&
               (maxr - maxl) > (a.second.r - a.second.l)) {
      maxnum = a.second.tot;
      maxl = a.second.l;
      maxr = a.second.r;
    }
  }
  printf("%d %d", maxl, maxr);
  return 0;
}
