#include #include #include #include #include #include typedef unsigned long long ull; using namespace std; const int md=1e9+7; /*ull palindromeSubStrs(string s) { map m; int n = s.size(); int R[2][n+1]; s = "@" + s + "#"; for (int j = 0; j <= 1; j++) { int rp = 0; R[j][0] = 0; int i = 1; while (i <= n) { while (s[i - rp - 1] == s[i + j + rp]) rp++; R[j][i] = rp; int k = 1; while ((R[j][i - k] != rp - k) && (k < rp)) { R[j][i + k] = min(R[j][i - k],rp - k); k++; } rp = max(rp - k,0); i += k; } } s = s.substr(1, n); m[string(1, s[0])]+=1; for (int i = 1; i <= n; i++) { for (int j = 0; j <= 1; j++) for (int rp = R[j][i]; rp > 0; rp--) m[s.substr(i - rp - 1, 2 * rp + j)]+=1; m[string(1, s[i])]+=1; } ull cc=0; map::iterator ii; for (ii = m.begin(); ii!=m.end(); ++ii) {cc+=((ii)->second%md); cout<<"> "<first<<"<"<<(ii)->second<>n>>q; string str; cin>>str; while(q--) { int a,b,c; cin>>a>>b>>c; if(a==1) { int t; cin>>t; for(int i=b;i<=c;i++) str[i]=(str[i]+t)%122; //cout<