#include <bits/stdc++.h>
using namespace std;
bool memory1;
typedef long long ll;
typedef unsigned long long ull;
typedef double dbe;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
#define openFile(name) freopen((name ".inp"), "r", stdin), freopen((name ".out"), "w", stdout)
#define FOR(i, a, b, x) for (ll i = (a); i <= (b); i += (x))
#define ROF(i, a, b, x) for (ll i = (a); i >= (b); i += (x))
#define fi first
#define se second
#define MASK(x) (1LL << (x))
#define getBit(mask, i) (((mask) >> (i)) & 1)
#define BitOn(mask) (__builtin_popcountll(mask))
const int maxN = 1e6 + 2;
const ll LOG = 22;
const ll INF18 = 1e18;
const int INF9 = 1e9;
const ll MOD = 1e9 + 7;
//////////////////////////////////////////////
ll n;
string s;
ll Solve() {
ll bestL = 0, bestR = 0;
ll bestDiff = 1;
ll colorCnt[26] = {};
ll diffColor = 0;
ll l = 0;
for (ll r = 0; r < n; ++r) {
ll c = s[r] - 'a';
if (colorCnt[c] == 0) ++diffColor;
++colorCnt[c];
while (l < r) {
ll cL = s[l] - 'a';
if (colorCnt[cL] > 1) {
--colorCnt[cL];
++l;
} else break;
}
ll len = r - l + 1;
ll bestLen = bestR - bestL + 1;
// So sánh: diffColor / len < bestDiff / bestLen
if (diffColor * bestLen < bestDiff * len ||
(diffColor * bestLen == bestDiff * len && l < bestL)) {
bestL = l;
bestR = r;
bestDiff = diffColor;
}
}
cout << bestL + 1 << " " << bestR + 1 << "\n";
return 0;
}
void input() {
cin >> n;
cin >> s;
Solve();
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
//bool memory2;
//cerr << "\n\n\nTime: "<< 1000.0 * clock() / CLOCKS_PER_SEC << " ms";
//cerr << "\n\n\nMemory: "<< abs(&memory1 - &memory2) * 1.0 / MASK(20) <<" MB";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgbWVtb3J5MTsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgZG91YmxlIGRiZTsKdHlwZWRlZiBwYWlyPGxsLCBsbD4gcGxsOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwoKI2RlZmluZSBvcGVuRmlsZShuYW1lKSBmcmVvcGVuKChuYW1lICIuaW5wIiksICJyIiwgc3RkaW4pLCBmcmVvcGVuKChuYW1lICIub3V0IiksICJ3Iiwgc3Rkb3V0KQojZGVmaW5lIEZPUihpLCBhLCBiLCB4KSBmb3IgKGxsIGkgPSAoYSk7IGkgPD0gKGIpOyBpICs9ICh4KSkKI2RlZmluZSBST0YoaSwgYSwgYiwgeCkgZm9yIChsbCBpID0gKGEpOyBpID49IChiKTsgaSArPSAoeCkpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNQVNLKHgpICgxTEwgPDwgKHgpKQojZGVmaW5lIGdldEJpdChtYXNrLCBpKSAoKChtYXNrKSA+PiAoaSkpICYgMSkKI2RlZmluZSBCaXRPbihtYXNrKSAoX19idWlsdGluX3BvcGNvdW50bGwobWFzaykpCgpjb25zdCBpbnQgbWF4TiA9IDFlNiArIDI7CmNvbnN0IGxsIExPRyA9IDIyOwpjb25zdCBsbCBJTkYxOCA9IDFlMTg7CmNvbnN0IGludCBJTkY5ID0gMWU5Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpsbCBuOwpzdHJpbmcgczsKCmxsIFNvbHZlKCkgewogICAgbGwgYmVzdEwgPSAwLCBiZXN0UiA9IDA7CiAgICBsbCBiZXN0RGlmZiA9IDE7CgogICAgbGwgY29sb3JDbnRbMjZdID0ge307CiAgICBsbCBkaWZmQ29sb3IgPSAwOwoKICAgIGxsIGwgPSAwOwogICAgZm9yIChsbCByID0gMDsgciA8IG47ICsrcikgewogICAgICAgIGxsIGMgPSBzW3JdIC0gJ2EnOwogICAgICAgIGlmIChjb2xvckNudFtjXSA9PSAwKSArK2RpZmZDb2xvcjsKICAgICAgICArK2NvbG9yQ250W2NdOwoKICAgICAgICB3aGlsZSAobCA8IHIpIHsKICAgICAgICAgICAgbGwgY0wgPSBzW2xdIC0gJ2EnOwogICAgICAgICAgICBpZiAoY29sb3JDbnRbY0xdID4gMSkgewogICAgICAgICAgICAgICAgLS1jb2xvckNudFtjTF07CiAgICAgICAgICAgICAgICArK2w7CiAgICAgICAgICAgIH0gZWxzZSBicmVhazsKICAgICAgICB9CgogICAgICAgIGxsIGxlbiA9IHIgLSBsICsgMTsKICAgICAgICBsbCBiZXN0TGVuID0gYmVzdFIgLSBiZXN0TCArIDE7CgogICAgICAgIC8vIFNvIHPDoW5oOiBkaWZmQ29sb3IgLyBsZW4gPCBiZXN0RGlmZiAvIGJlc3RMZW4KICAgICAgICBpZiAoZGlmZkNvbG9yICogYmVzdExlbiA8IGJlc3REaWZmICogbGVuIHx8IAogICAgICAgICAgICAoZGlmZkNvbG9yICogYmVzdExlbiA9PSBiZXN0RGlmZiAqIGxlbiAmJiBsIDwgYmVzdEwpKSB7CiAgICAgICAgICAgIGJlc3RMID0gbDsKICAgICAgICAgICAgYmVzdFIgPSByOwogICAgICAgICAgICBiZXN0RGlmZiA9IGRpZmZDb2xvcjsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBiZXN0TCArIDEgPDwgIiAiIDw8IGJlc3RSICsgMSA8PCAiXG4iOwogICAgcmV0dXJuIDA7Cn0KCnZvaWQgaW5wdXQoKSB7CiAgICBjaW4gPj4gbjsKICAgIGNpbiA+PiBzOwogICAgU29sdmUoKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlucHV0KCk7CgogICAgLy9ib29sIG1lbW9yeTI7CiAgICAvL2NlcnIgPDwgIlxuXG5cblRpbWU6ICI8PCAxMDAwLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMgPDwgIiBtcyI7CiAgICAvL2NlcnIgPDwgIlxuXG5cbk1lbW9yeTogIjw8IGFicygmbWVtb3J5MSAtICZtZW1vcnkyKSAqIDEuMCAvIE1BU0soMjApIDw8IiBNQiI7CgogICAgcmV0dXJuIDA7Cn0K