#!/bin/python import sys n,q = raw_input().strip().split(' ') n,q = [int(n),int(q)] s = list(raw_input().strip()) code = pow(10, 9) + 7 def num_palindromes(arr): l = len(arr) memo = [[0 for j in range(l+1)] for i in range(l+2)] for i in range(1, l+1): memo[i][i] = 1 for i in range(l+1, 0, -1): for j in range(i+1, l+1): if i == l+2 or i > j: memo[i][j] = 0 elif i == j: memo[i][j] = 1 else: memo[i][j] = memo[i+1][j] + memo[i][j-1] if arr[i-1] == arr[j-1]: memo[i][j] += 1 else: memo[i][j] -= memo[i+1][j-1] return memo[1][-1] for a0 in xrange(q): # your code goes here query = map(int, raw_input().strip().split(' ')) if query[0] == 1: for i in range(query[1], query[2]+1): s[i] = chr(((ord(s[i])-97+query[2]) % 26) + 97) elif query[0] == 2: print num_palindromes(s[query[1]:query[2]+1])