#include <bits/stdc++.h>
#define pub push_back
#define FOR(i, l, r, x) for(int i = l; i <= r; i += x)
#define FOD(i, l, r, x) for(int i = l; i >= r; i -= x)
#define all(x) begin(x), end(x)
#define pii pair<int, int>
#define fi first
#define se second
#define int long long
using namespace std;
const int N = 3e6 + 5;
const int M = 350;
const int LOG = 19;
const int mod = 1e9 + 7;
const int inf = 3e18;
string s;
int n, base[N], f[N], prefix[N], ans = 0;
map <int, bool> used;
deque <int> dq;
int minusMod(int a, int b) {
return ((a - b) % mod + mod) % mod;
}
int mulMod(int a, int b) {
return (a * b) % mod;
}
void calBase() {
base[0] = 1;
FOR(i, 1, n, 1) {
base[i] = (base[i - 1] * 256) % mod;
}
}
void hashing(string s) {
FOR(i, 1, n, 1) {
f[i] = (f[i - 1] * 256 + (int)s[i]) % mod;
}
}
int getHash(int l, int r) {
return minusMod(f[r], mulMod(f[l - 1], base[r - l + 1]));
}
void push(int i) {
while(!dq.empty() && prefix[i] <= prefix[dq.back()]) {
dq.pop_back();
}
dq.push_back(i);
}
void pop(int i) {
if (i == dq.front()) {
dq.pop_front();
}
}
void input() {
cin >> n;
cin >> s;
s += s; s.pop_back(); s.insert(0, " ");
calBase();
int l = 3, r = 8;
hashing(s);
int hash1 = getHash(l, r);
cout << hash1 << '\n';
cout << l << " " << r<< '\n';
cout << s.substr(l, r - l + 1) << '\n';
l = 5, r = 10;
hashing(s);
hash1 = getHash(l, r);
cout << hash1 << '\n';
cout << l << " " << r<< '\n';
cout << s.substr(l, r - l + 1) << '\n';
}
void solve() {
input();
// FOR(i, 1, 2 * n - 1, 1) {
// prefix[i] = prefix[i - 1] + (s[i] == '(' ? 1 : -1);
// }
//
// FOR(r, 1, n, 1) {
// push(r);
// }
//
// FOR(r, n + 1, 2 * n - 1, 1) {
// int l = (r - n + 1);
// pop(l - 1); push(r);
//
// if (prefix[r] - prefix[l - 1] != 0) continue;
// if (prefix[dq.front()] - prefix[l - 1] < 0) continue;
//
// int hash1 = getHash(l, r);
// if (used[hash1]) continue;
// used[hash1] = 1;
// cout << hash1 << '\n';
// cout << l << " " << r<< '\n';
// cout << s.substr(l, r - l + 1) << '\n';
//
// ans ++;
// }
//
// cout << ans << '\n';
}
signed main() {
#define name "baitap"
if (ifstream(name".inp")) {
freopen(name".inp", "r", stdin);
freopen(name".out", "w", stdout);
}
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcHViIHB1c2hfYmFjawojZGVmaW5lIEZPUihpLCBsLCByLCB4KSBmb3IoaW50IGkgPSBsOyBpIDw9IHI7IGkgKz0geCkKI2RlZmluZSBGT0QoaSwgbCwgciwgeCkgZm9yKGludCBpID0gbDsgaSA+PSByOyBpIC09IHgpCiNkZWZpbmUgYWxsKHgpIGJlZ2luKHgpLCBlbmQoeCkKI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGludCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBOID0gM2U2ICsgNTsKY29uc3QgaW50IE0gPSAzNTA7CmNvbnN0IGludCBMT0cgPSAxOTsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CmNvbnN0IGludCBpbmYgPSAzZTE4OwoKc3RyaW5nIHM7CmludCBuLCBiYXNlW05dLCBmW05dLCBwcmVmaXhbTl0sIGFucyA9IDA7Cm1hcCA8aW50LCBib29sPiB1c2VkOwpkZXF1ZSA8aW50PiBkcTsKCmludCBtaW51c01vZChpbnQgYSwgaW50IGIpIHsKICAgIHJldHVybiAoKGEgLSBiKSAlIG1vZCArIG1vZCkgJSBtb2Q7Cn0KaW50IG11bE1vZChpbnQgYSwgaW50IGIpIHsKICAgIHJldHVybiAoYSAqIGIpICUgbW9kOwp9CnZvaWQgY2FsQmFzZSgpIHsKICAgIGJhc2VbMF0gPSAxOwogICAgRk9SKGksIDEsIG4sIDEpIHsKICAgICAgICBiYXNlW2ldID0gKGJhc2VbaSAtIDFdICogMjU2KSAlIG1vZDsKICAgIH0KfQp2b2lkIGhhc2hpbmcoc3RyaW5nIHMpIHsKICAgIEZPUihpLCAxLCBuLCAxKSB7CiAgICAgICAgZltpXSA9IChmW2kgLSAxXSAqIDI1NiArIChpbnQpc1tpXSkgJSBtb2Q7CiAgICB9Cn0KaW50IGdldEhhc2goaW50IGwsIGludCByKSB7CiAgICByZXR1cm4gbWludXNNb2QoZltyXSwgbXVsTW9kKGZbbCAtIDFdLCBiYXNlW3IgLSBsICsgMV0pKTsKfQp2b2lkIHB1c2goaW50IGkpIHsKICAgIHdoaWxlKCFkcS5lbXB0eSgpICYmIHByZWZpeFtpXSA8PSBwcmVmaXhbZHEuYmFjaygpXSkgewogICAgICAgIGRxLnBvcF9iYWNrKCk7CiAgICB9CiAgICBkcS5wdXNoX2JhY2soaSk7Cn0Kdm9pZCBwb3AoaW50IGkpIHsKICAgIGlmIChpID09IGRxLmZyb250KCkpIHsKICAgICAgICBkcS5wb3BfZnJvbnQoKTsKICAgIH0KfQp2b2lkIGlucHV0KCkgewogICAgY2luID4+IG47CiAgICBjaW4gPj4gczsKICAgIHMgKz0gczsgcy5wb3BfYmFjaygpOyBzLmluc2VydCgwLCAiICIpOwogICAgY2FsQmFzZSgpOwoKCiAgICBpbnQgbCA9IDMsIHIgPSA4OwogICAgaGFzaGluZyhzKTsKICAgIGludCBoYXNoMSA9IGdldEhhc2gobCwgcik7CiAgICBjb3V0IDw8IGhhc2gxIDw8ICdcbic7CiAgICBjb3V0IDw8IGwgIDw8ICIgIiA8PCByPDwgJ1xuJzsKICAgIGNvdXQgPDwgcy5zdWJzdHIobCwgciAtIGwgKyAxKSA8PCAnXG4nOwoKICAgIGwgPSA1LCByID0gMTA7CiAgICBoYXNoaW5nKHMpOwogICAgaGFzaDEgPSBnZXRIYXNoKGwsIHIpOwogICAgY291dCA8PCBoYXNoMSA8PCAnXG4nOwogICAgY291dCA8PCBsICA8PCAiICIgPDwgcjw8ICdcbic7CiAgICBjb3V0IDw8IHMuc3Vic3RyKGwsIHIgLSBsICsgMSkgPDwgJ1xuJzsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGlucHV0KCk7Ci8vICAgIEZPUihpLCAxLCAyICogbiAtIDEsIDEpIHsKLy8gICAgICAgIHByZWZpeFtpXSA9IHByZWZpeFtpIC0gMV0gKyAoc1tpXSA9PSAnKCcgPyAxIDogLTEpOwovLyAgICB9Ci8vCi8vICAgIEZPUihyLCAxLCBuLCAxKSB7Ci8vICAgICAgICBwdXNoKHIpOwovLyAgICB9Ci8vCi8vICAgIEZPUihyLCBuICsgMSwgMiAqIG4gLSAxLCAxKSB7Ci8vICAgICAgICBpbnQgbCA9IChyIC0gbiArIDEpOwovLyAgICAgICAgcG9wKGwgLSAxKTsgcHVzaChyKTsKLy8KLy8gICAgICAgIGlmIChwcmVmaXhbcl0gLSBwcmVmaXhbbCAtIDFdICE9IDApIGNvbnRpbnVlOwovLyAgICAgICAgaWYgKHByZWZpeFtkcS5mcm9udCgpXSAtIHByZWZpeFtsIC0gMV0gPCAwKSBjb250aW51ZTsKLy8KLy8gICAgICAgIGludCBoYXNoMSA9IGdldEhhc2gobCwgcik7Ci8vICAgICAgICBpZiAodXNlZFtoYXNoMV0pIGNvbnRpbnVlOwovLyAgICAgICAgdXNlZFtoYXNoMV0gPSAxOwovLyAgICAgICAgY291dCA8PCBoYXNoMSA8PCAnXG4nOwovLyAgICAgICAgY291dCA8PCBsICA8PCAiICIgPDwgcjw8ICdcbic7Ci8vICAgICAgICBjb3V0IDw8IHMuc3Vic3RyKGwsIHIgLSBsICsgMSkgPDwgJ1xuJzsKLy8KLy8gICAgICAgIGFucyArKzsKLy8gICAgfQovLwovLyAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwp9CgpzaWduZWQgbWFpbigpIHsKICAgICNkZWZpbmUgbmFtZSAiYmFpdGFwIgogICAgaWYgKGlmc3RyZWFtKG5hbWUiLmlucCIpKSB7CiAgICAgICAgZnJlb3BlbihuYW1lIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKG5hbWUiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwoKICAgIHNvbHZlKCk7Cn0K