#include <bits/stdc++.h>
#define VuDucNam ios_base::sync_with_stdio(false);
#define Lop9a6 cin.tie(NULL);
#define THCSPhamVanDong cout.tie(NULL);
#define ll long long
#define el cout << '\n'
#define sz(a) (ll) a.size()
#define all(a) a.begin(), a.end()
#define fi first
#define se second
#define fill(a, x) memset(a, x, sizeof(a))
#define file(name) \
if (fopen(name ".inp", "r")) \
{ \
freopen(name ".inp", "r", stdin); \
freopen(name ".out", "w", stdout); \
}
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"
using namespace std;
const ll MOD = 1e9 + 7;
const ll inf = LLONG_MAX;
void solve()
{
string s;
getline(cin, s);
int l=0,ans1=l,ans2=0;
int mp[30]={0};
for (int r=0;r<sz(s);++r)
{
// Ta cố định 1 biến right để cố định của sổ
mp[s[r]-'A']++;// nếu gặp kí tự s[r] thì tăng thêm +1
while (mp[s[r]-'A']>1){ // nếu mà xuất hiện s[r] nhiều hơn 1 lần thì ta phải kéo cửa sổ lại cho đến khi chỉ xuất hiện s[r]==1
mp[s[l]-'A']--;// giảm đi -1 với a[l]
l++;// tăng left
}
if(r-l+1>ans2){
ans1=l+1; // vì yêu cầu đề bài là chuỗi bắt đầu từ 1 mà trong string thì bắt đầu từ 0 nên phải +1 vào left
ans2=r-l+1;
}
}
cout << ans1 << " " << ans2;
el;
}
int main()
{
VuDucNam Lop9a6 THCSPhamVanDong
//file();
solve();
RUNTIME;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgVnVEdWNOYW0gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiNkZWZpbmUgTG9wOWE2IGNpbi50aWUoTlVMTCk7CiNkZWZpbmUgVEhDU1BoYW1WYW5Eb25nIGNvdXQudGllKE5VTEwpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIHN6KGEpIChsbCkgYS5zaXplKCkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmaWxsKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgZmlsZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpZiAoZm9wZW4obmFtZSAiLmlucCIsICJyIikpICAgICAgICAgICBcCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIuaW5wIiwgInIiLCBzdGRpbik7ICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIub3V0IiwgInciLCBzdGRvdXQpOyBcCiAgICB9CiNkZWZpbmUgVElNRSAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIFJVTlRJTUUgY2VyciA8PCAiXG5SdW50aW1lOiAiIDw8IFRJTUUgPDwgInMuXG4iCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgbGwgTU9EID0gMWU5ICsgNzsKY29uc3QgbGwgaW5mID0gTExPTkdfTUFYOwoKdm9pZCBzb2x2ZSgpCnsKICAgIHN0cmluZyBzOwogICAgZ2V0bGluZShjaW4sIHMpOwogICAgaW50IGw9MCxhbnMxPWwsYW5zMj0wOwogICAgaW50IG1wWzMwXT17MH07CiAgICBmb3IgKGludCByPTA7cjxzeihzKTsrK3IpCiAgICB7CiAgICAgICAgLy8gVGEgY+G7kSDEkeG7i25oIDEgYmnhur9uIHJpZ2h0IMSR4buDIGPhu5EgxJHhu4tuaCBj4bunYSBz4buVCiAgICAgICAgbXBbc1tyXS0nQSddKys7Ly8gbuG6v3UgZ+G6t3Aga8OtIHThu7Egc1tyXSB0aMOsIHTEg25nIHRow6ptICsxCiAgICAgICAgd2hpbGUgKG1wW3Nbcl0tJ0EnXT4xKXsgLy8gbuG6v3UgbcOgIHh14bqldCBoaeG7h24gc1tyXSBuaGnhu4F1IGjGoW4gMSBs4bqnbiB0aMOsIHRhIHBo4bqjaSBrw6lvIGPhu61hIHPhu5UgbOG6oWkgY2hvIMSR4bq/biBraGkgY2jhu4kgeHXhuqV0IGhp4buHbiBzW3JdPT0xCiAgICAgICAgICAgIG1wW3NbbF0tJ0EnXS0tOy8vIGdp4bqjbSDEkWkgLTEgduG7m2kgYVtsXQogICAgICAgICAgICBsKys7Ly8gdMSDbmcgbGVmdCAKICAgICAgICB9CiAgICAgICAgaWYoci1sKzE+YW5zMil7CiAgICAgICAgICAgIGFuczE9bCsxOyAvLyB2w6wgecOqdSBj4bqndSDEkeG7gSBiw6BpIGzDoCBjaHXhu5dpIGLhuq90IMSR4bqndSB04burIDEgbcOgIHRyb25nIHN0cmluZyB0aMOsIGLhuq90IMSR4bqndSB04burIDAgbsOqbiBwaOG6o2kgKzEgdsOgbyBsZWZ0CiAgICAgICAgICAgIGFuczI9ci1sKzE7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnMxIDw8ICIgIiA8PCBhbnMyOwogICAgZWw7Cn0KCmludCBtYWluKCkKewogICAgVnVEdWNOYW0gTG9wOWE2IFRIQ1NQaGFtVmFuRG9uZwogICAgLy9maWxlKCk7CiAgICBzb2x2ZSgpOwogICAgUlVOVElNRTsKICAgIHJldHVybiAwOwp9Cg==