#!/bin/python3 import sys from collections import Counter MOD = 1000000007 def all_even(counts): res = 1 for c in counts: if c > 2: res = res * 2**(c-1) % MOD return res def some_odds(counts): res = 0 for i in range(len(counts)): res += all_even(counts[:i] + counts[i+1:]) + 2**(counts[i]-1) return res % MOD def qq(ss, ii, jj): c = Counter(ss[ii:jj+1]) counts = [c[k] for k in c] return (all_even(counts) + some_odds(counts) - 1) % MOD n,q = input().strip().split(' ') n,q = [int(n),int(q)] s = input().strip() for a0 in range(q): query = input().strip() if query[0] == '2': _, i, j = [int(s) for s in query.split(' ')] print(qq(s, i, j))