#include #define fo(i,n) for(i=0;i0;--i) using namespace std; typedef long long int ll; typedef pair ii; typedef vector vii; typedef vector vi; #define mod 1000000007 ll gcd(ll a,ll b){while(a&&b)a>b?a%=b:b%=a;return a+b;} ll lcm(ll a,ll b){return a/gcd(a,b)*b;} ll counter; char c[100001]; void calc(int l, int r){ vectorm; string s; for(int i=l;i<=r;i++) s = s + c[i]; int n = s.length(); 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) && (k0;rp--) m.push_back(s.substr(i-rp-1,2*rp+j)); m.push_back(string(1,s[i])); } } for(int i = 0;i>n>>m; int i, j; fo(i,n) cin>>c[i]; fo(j,m){ cin>>x; if(x==1){ cin>>l>>r>>t; for(i=l;i<=r;i++){ t = t % 26; int shift = int(c[i])+t; if(shift > 122) shift -= 26; c[i] = char(shift); } } else{ cin>>l>>r; //calc(l,r); cout<