야만인의 돌판

아직 제출이 없습니다시간 제한4초메모리 제한768 MB

문제

세상에는 특이한 사람이 많다. 그중에서도 우리가 가장 관심 있게 보는 쪽은 야만인이다.

야만인은 아주 많지만, 이 이야기에서 중요한 야만인은 NN명이고 1번부터 NN번까지 번호가 붙어 있다. 야만인마다 돌판이 하나씩 있고, 그 돌판에는 영어 소문자로만 이루어진 단어가 하나 새겨져 있다.

야만인은 친구 타잔과 게임을 한다. 게임은 QQ개의 라운드로 진행되고, 각 라운드의 종류는 타잔이 정한다.

  • 첫 번째 종류: 타잔이 야만인에게 단어 PP를 보여 준다.
  • 두 번째 종류: 타잔이 SS번 야만인에게 묻는다. "지금까지 내가 보여 준 단어 중에서 네 돌판에 새겨진 단어를 연속한 부분 문자열로 포함하는 단어는 몇 개인가?"

야만인은 쉽게 흥분해서 게임을 제대로 따라가지 못한다. 타잔의 질문마다 정답을 대신 구해 주자.

입력

첫 줄에 야만인의 수 NN (1N1051 \le N \le 10^5)이 주어진다.

다음 NN개의 줄에는 영어 소문자로만 이루어진 단어가 한 줄에 하나씩 주어진다. ii번째 줄의 단어는 ii번 야만인의 돌판에 새겨진 단어다.

그 다음 줄에 라운드의 수 QQ (1Q1051 \le Q \le 10^5)가 주어진다.

이어지는 QQ개의 줄은 각각 한 라운드를 설명한다. 각 줄은 정수 OO로 시작한다.

OO가 1이면 첫 번째 종류의 라운드이고, 같은 줄에 타잔이 보여 준 단어 PP가 이어진다. PP는 영어 소문자로만 이루어져 있다.

OO가 2이면 두 번째 종류의 라운드이고, 같은 줄에 타잔이 질문한 야만인의 번호 SS (1SN1 \le S \le N)가 이어진다.

돌판에 새겨진 단어의 길이를 모두 더한 값은 2×1062 \times 10^6을 넘지 않는다.

타잔이 보여 주는 단어의 길이를 모두 더한 값도 2×1062 \times 10^6을 넘지 않는다.

출력

두 번째 종류의 라운드마다 한 줄에 답을 하나씩 출력한다. ii번째 줄에는 ii번째로 나온 두 번째 종류의 라운드에서 타잔이 한 질문의 답을 출력한다.

같은 단어를 여러 번 보여 주면 보여 준 횟수만큼 따로 센다. 돌판의 단어가 보여 준 단어 하나 안에서 여러 번 나타나도 그 단어는 한 번만 센다. 아직 보여 준 단어가 없으면 답은 0이다.

힌트

첫 번째 예제에서 타잔이 보여 준 단어는 abca뿐이다. 첫 질문의 답은 1이다. 단어 a는 abca의 부분 문자열이다. 두 번째 질문의 답도 1이다. 단어 abc도 abca의 부분 문자열이다.