import itertools nin = input().split() strin = input() q= [input().split() for i in range (int(nin[1]))] for c in q: if c[0] == '1': st = '' for j in range (int(c[1]),int(c[2])+1): st = st+chr(ord(strin[j])+int(c[3])) strin = st+strin[int(c[2])+1:] if c[0] == '2': ss = [] stuff = strin[int(c[1]):int(c[2])+1] for L in range(0, len(stuff)+1): for subset in itertools.combinations(stuff, L): ss.append(subset) op = [] for ch in ss: s = ''.join(ch) if s==s[::-1]: op.append(s) print(len(op)-1)