class Node: def __init__(self): self.nex = {} self.ind = [] n = int(input()) V0 = Node() Vs = [None] * n ans = [0] * n for i in range(n): S = input() V = V0 for s in S: if s not in V.nex: V.nex[s] = Node() V = V.nex[s] ans[i] += 1 for j in V.ind: ans[i] += 1 ans[j] += 1 V.ind.append(i) Vs[i] = V Q = int(input()) for _ in range(Q): query = input().split() if query[0] == "1": x = int(query[1]) - 1 s = query[2] V = Vs[x] if s not in V.nex: V.nex[s] = Node() V = V.nex[s] ans[x] += 1 for j in V.ind: ans[x] += 1 ans[j] += 1 V.ind.append(i) Vs[x] = V else: x = int(query[1]) - 1 print(ans[x])