#include<bits/stdc++.h>
using namespace std;
template<typename X, typename Y>
bool chmax(X& a, Y b) { return (a < b) ? a = b, 1 : 0; }
template<typename X, typename Y>
bool chmin(X& a, Y b) { return (a > b) ? a = b, 1 : 0; }
using ll = long long;
using ull = unsigned long long;
const int N = 1e5+5;
const ull BASE = 1e6+3;
int n, a[N];
ull P[N], H[N];
int freq[N];
ull get_hash(int l, int r) {
return H[r] - H[l - 1] * P[r - l + 1];
}
struct Info {
ull h;
int p;
bool operator<(const Info& o) const {
if (h != o.h) return h < o.h;
return p < o.p;
}
};
int check(int L, int f) {
if (L > n) return -1;
vector<Info> S;
for (int i = L; i <= n; i++) S.push_back({get_hash(i - L + 1, i), i});
sort(S.begin(), S.end());
int pos = -1, cnt = 1;
for (size_t i = 1; i <= (int)S.size(); i++) {
if (i < (int)S.size() && S[i].h == S[i - 1].h) cnt++;
else {
if (cnt == f) chmax(pos, S[i - 1].p);
cnt = 1;
}
}
return pos;
}
void solve() {
cin >> n;
vector<int> vals;
for (int i = 1; i <= n; i++) {
cin >> a[i];
vals.push_back(a[i]);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
int mx_freq = 0;
for (int i = 1; i <= n; i++) {
a[i] = lower_bound(vals.begin(), vals.end(), a[i]) - vals.begin() + 1;
freq[a[i]]++;
chmax(mx_freq, freq[a[i]]);
}
P[0] = 1;
for (int i = 1; i <= n; i++) {
P[i] = P[i - 1] * BASE;
H[i] = H[i - 1] * BASE + a[i];
}
int low = 1, high = n, best_len = 1, best_pos = n;
while (low <= high) {
int mid = low + (high - low) / 2;
int p = check(mid, mx_freq);
if (p != -1) {
best_len = mid;
best_pos = p;
low = mid + 1;
} else high = mid - 1;
}
cout << best_pos - best_len + 1 << ' ' << best_pos << '\n';
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
#define TASK "BAI4"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFk+CmJvb2wgY2htYXgoWCYgYSwgWSBiKSB7IHJldHVybiAoYSA8IGIpID8gYSA9IGIsIDEgOiAwOyB9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBYLCB0eXBlbmFtZSBZPgpib29sIGNobWluKFgmIGEsIFkgYikgeyByZXR1cm4gKGEgPiBiKSA/IGEgPSBiLCAxIDogMDsgfQoKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIHVsbCA9IHVuc2lnbmVkIGxvbmcgbG9uZzsKCmNvbnN0IGludCBOID0gMWU1KzU7CmNvbnN0IHVsbCBCQVNFID0gMWU2KzM7CgppbnQgbiwgYVtOXTsKdWxsIFBbTl0sIEhbTl07CmludCBmcmVxW05dOwoKdWxsIGdldF9oYXNoKGludCBsLCBpbnQgcikgewogICAgcmV0dXJuIEhbcl0gLSBIW2wgLSAxXSAqIFBbciAtIGwgKyAxXTsKfQoKc3RydWN0IEluZm8gewogICAgdWxsIGg7CiAgICBpbnQgcDsKICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEluZm8mIG8pIGNvbnN0IHsKICAgICAgICBpZiAoaCAhPSBvLmgpIHJldHVybiBoIDwgby5oOwogICAgICAgIHJldHVybiBwIDwgby5wOwogICAgfQp9OwoKaW50IGNoZWNrKGludCBMLCBpbnQgZikgewogICAgaWYgKEwgPiBuKSByZXR1cm4gLTE7CiAgICB2ZWN0b3I8SW5mbz4gUzsKICAgIGZvciAoaW50IGkgPSBMOyBpIDw9IG47IGkrKykgUy5wdXNoX2JhY2soe2dldF9oYXNoKGkgLSBMICsgMSwgaSksIGl9KTsKICAgIHNvcnQoUy5iZWdpbigpLCBTLmVuZCgpKTsKICAgIGludCBwb3MgPSAtMSwgY250ID0gMTsKICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDw9IChpbnQpUy5zaXplKCk7IGkrKykgewogICAgICAgIGlmIChpIDwgKGludClTLnNpemUoKSAmJiBTW2ldLmggPT0gU1tpIC0gMV0uaCkgY250Kys7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmIChjbnQgPT0gZikgY2htYXgocG9zLCBTW2kgLSAxXS5wKTsKICAgICAgICAgICAgY250ID0gMTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcG9zOwp9Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG47CiAgICB2ZWN0b3I8aW50PiB2YWxzOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7IAogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIHZhbHMucHVzaF9iYWNrKGFbaV0pOwogICAgfQogICAgc29ydCh2YWxzLmJlZ2luKCksIHZhbHMuZW5kKCkpOwogICAgdmFscy5lcmFzZSh1bmlxdWUodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpKSwgdmFscy5lbmQoKSk7CiAgICBpbnQgbXhfZnJlcSA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBhW2ldID0gbG93ZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCBhW2ldKSAtIHZhbHMuYmVnaW4oKSArIDE7CiAgICAgICAgZnJlcVthW2ldXSsrOwogICAgICAgIGNobWF4KG14X2ZyZXEsIGZyZXFbYVtpXV0pOwogICAgfQogICAgUFswXSA9IDE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBQW2ldID0gUFtpIC0gMV0gKiBCQVNFOwogICAgICAgIEhbaV0gPSBIW2kgLSAxXSAqIEJBU0UgKyBhW2ldOwogICAgfQogICAgaW50IGxvdyA9IDEsIGhpZ2ggPSBuLCBiZXN0X2xlbiA9IDEsIGJlc3RfcG9zID0gbjsKICAgIHdoaWxlIChsb3cgPD0gaGlnaCkgewogICAgICAgIGludCBtaWQgPSBsb3cgKyAoaGlnaCAtIGxvdykgLyAyOwogICAgICAgIGludCBwID0gY2hlY2sobWlkLCBteF9mcmVxKTsKICAgICAgICBpZiAocCAhPSAtMSkgewogICAgICAgICAgICBiZXN0X2xlbiA9IG1pZDsKICAgICAgICAgICAgYmVzdF9wb3MgPSBwOwogICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgIH0gZWxzZSBoaWdoID0gbWlkIC0gMTsKICAgIH0KICAgIGNvdXQgPDwgYmVzdF9wb3MgLSBiZXN0X2xlbiArIDEgPDwgJyAnIDw8IGJlc3RfcG9zIDw8ICdcbic7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoTlVMTCk7CgogICAgI2RlZmluZSBUQVNLICJCQUk0IgogICAgaWYgKGZvcGVuKFRBU0siLklOUCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKFRBU0siLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oVEFTSyIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGludCB0ZXN0cyA9IDE7IC8vIGNpbiA+PiB0ZXN0czsKICAgIHdoaWxlICh0ZXN0cy0tKSBzb2x2ZSgpOwoKICAgICNpZmRlZiBMT0NBTAogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgcy5cbiI7CiAgICAjZW5kaWYKICAgIHJldHVybiAwOwp9