//Palindromic Subsets //https://www.hackerrank.com/contests/101hack44/challenges/palindromic-subsets #include #include #include #include using namespace std; string s; int n,q,tip,i,j,t,slova[125]; int main() { //ios_base::sync_with_stdio(false); cin>>n>>q; cin>>s; while(q--) { cin>>tip>>i>>j; // cout<<"p"; if(tip==1) { cin>>t; t%=26; for(int k=i;k<=j;k++) { s[k]+=t; if(s[k]>122) s[k]-=26; } } else { // cout<=0;k--) { if(slova[k]==0) break; sum+=((int)pow(2,slova[k])-1); if(sum>1000000007) sum%=1000000007; } int br2=0; for(int k=124;k>=0;k--) { if(slova[k]==0) break; if(slova[k]>=2) br2++; } //cout<<"brbrbr"<=0;k--) { if(slova[k]==0) break; if(slova[k]>=2) { sum+=(brslova-slova[k])*(int)pow(2,br2-1); if(sum>1000000007) sum%=1000000007; } } cout<