#include #include #include #include using namespace std; const int MOD = 1000000007; int n,d[1010][1010],q,flag,x,y,z; char s[1010]; inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int main() { n=read(),q=read(); scanf("%s",s+1); if (n<=500&&q<=500) { while (q--) { flag=read(); if (flag==1) { x=read()+1,y=read()+1,z=read(); for (int i=x;i<=y;i++) s[i]=(s[i]-'a'+z)%26+'a'; } else { x=read()+1,y=read()+1; memset(d,0,sizeof(d)); for(int i=x;i<=y;i++) d[i][i]=1; for(int i=1;i