import sys class SegTree: def __init__(self, op, e, v): self._op = op self._e = e self._n = len(v) self._log = (self._n - 1).bit_length() self._size = 1 << self._log self._d = [self._e] * (2 * self._size) for i in range(self._n): self._d[self._size + i] = v[i] for i in range(self._size - 1, 0, -1): self._update(i) def _update(self, k): self._d[k] = self._op(self._d[2 * k], self._d[2 * k + 1]) def set(self, p, x): p += self._size self._d[p] = x for i in range(1, self._log + 1): self._update(p >> i) def get(self, p): return self._d[p + self._size] def prod(self, l, r): sml = self._e smr = self._e l += self._size r += self._size while l < r: if l & 1: sml = self._op(sml, self._d[l]) l += 1 if r & 1: r -= 1 smr = self._op(self._d[r], smr) l >>= 1 r >>= 1 return self._op(sml, smr) ap = ( (0, 0, 3, 3), (0, 1, 2, 3), (0, 2, 1, 3), (0, 3, 0, 3), ) def op(l, r): l_c0, l_c1, l_x, l_f, l_ans = l r_c0, r_c1, r_x, r_f, r_ans = r if r_f == -1: return l if l_f == -1: return r res_c0, res_c1 = r_c0, r_c1 if r_f in (0, 1): res_c0 += l_c0 else: res_c1 += l_c0 if r_f in (0, 2): res_c0 += l_c1 else: res_c1 += l_c1 res_x_list = list(l_x) for k in range(4): res_x_list[ap[l_f][k]] += r_x[k] res_f = ap[l_f][r_f] res_ans = l_ans + r_ans + l_c0 * (r_x[2] + r_x[3]) + l_c1 * (r_x[1] + r_x[3]) return (res_c0, res_c1, tuple(res_x_list), res_f, res_ans) def identity_element(): return (0, 0, (0, 0, 0, 0), -1, 0) def main(): input = sys.stdin.readline n, que = map(int, input().split()) s_in = input().strip() s = "+" + s_in n_pairs = (n + 1) // 2 a = [] for i in range(n_pairs): op_char, val_char = s[2 * i], s[2 * i + 1] c0, c1, ans = 0, 0, 0 x = [0, 0, 0, 0] f = 0 if op_char == '+': f = 3 if val_char == 'T' else 1 elif op_char == '*': f = 1 if val_char == 'T' else 0 else: f = 2 if val_char == 'T' else 1 x[f] += 1 if val_char == 'T': ans, c1 = 1, 1 else: c0 = 1 a.append((c0, c1, tuple(x), f, ans)) seg = SegTree(op, identity_element(), a) for _ in range(que): l, r = map(int, input().split()) l, r = (l - 1 + 1) // 2, (r + 1) // 2 res_tuple = seg.prod(l, r) print(res_tuple[4]) if __name__ == "__main__": main()