#include using namespace std; #define rep(i,n) for(ll i=0;i=b;i--) #define ll long long int #define pll pair #define mb make_pair #define pb push_back #define F first #define S second #define M 1000000007 #define dbg(a) std::cerr<<#a<<"="<<(a)<<"\n" #define dbg1(a,b) std::cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<"\n" #define dbg2(a,b,c) std::cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<"\n" #define dbg3(a,b,c,d) std::cerr<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<", "<<#d<<"="<<(d)<<"\n" ll fac[100005]; int main() { ll q,n,t,a,b,c; cin>>n>>q; string s; cin>>s; rep(i,q) { cin>>t; if(t==1) { cin>>a>>b>>c; c%=26; repp(i,a,b) { ll tm=(s[i]-'a')+c; tm%=26; s[i]=('a'+tm); } //dbg(s); } else { cin>>a>>b; cout<<(b-a+1)%M<