#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int 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; } return m.size()-1; } int main(){ int n; int q; cin >> n >> q; string s; cin >> s; for(int a0 = 0; a0 < q; a0++){ int t; cin >> t; if(t==1){ int i,j,l; cin >> i >> j >> l; for(int k=i;k<=j;k++){ int d = s[i] + l; if(d>122){ d -=26; } s[k] = d; } // cout << s; } else{ long long int i,j,kl=0; cin >> i >> j; int ar[26]={}; for(int l=i;l<=j;l++){ ar[s[l]-97]++; } // cout << ar[0]; for(int h=0;h<26;h++){ int p = ar[h],count=1; if(p>1){ // cout<