#SGM0000049. Hoán vị bảng chữ cái (Alphabet Permutations)

Hoán vị bảng chữ cái (Alphabet Permutations)

Hoán vị bảng chữ cái (Alphabet Permutations)

Nguồn: Codeforces

Phiên bản: Phước Hưng OJ Extended

Đề bài

Chuỗi ss dùng kk chữ đầu bảng chữ cái. Có thao tác gán một ký tự cho đoạn và truy vấn một hoán vị pp. Gọi d(p)d(p) là số bản sao nhỏ nhất của pp sao cho pp lặp d(p)d(p) lần chứa ss như một subsequence; hãy in d(p)d(p).

Input

Dòng đầu chứa n,m,kn,m,k. Dòng thứ hai là chuỗi ss độ dài nn, chỉ dùng kk chữ đầu của bảng chữ cái. Mỗi trong mm dòng sau là một thao tác:

  • 1 l r c: gán mọi ký tự trong [l,r][l,r] thành cc.
  • 2 p: pp là một hoán vị của kk chữ đầu; cần tính d(p)d(p).

Output

Với mỗi thao tác loại 2, in giá trị d(p)d(p) trên một dòng.

Subtask

  • Subtask 1 (20%): nn và số thao tác không vượt 30; các điều kiện còn lại giữ như đề đầy đủ.

  • Subtask 2 (30%): nn và số thao tác không vượt 3000; các điều kiện còn lại giữ như đề đầy đủ.

  • Subtask 3 (50%): toàn bộ giới hạn:

  • 1≤n≤2⋅1051\le n\le2\cdot10^5

  • 1≤m≤200001\le m\le20000

  • 1≤k≤101\le k\le10

Ví dụ

Input

7 4 3
abacaba
1 3 5 b
2 abc
1 4 4 c
2 cba

Output

6
5

Giải thích

Sau thao tác gán đầu tiên, chuỗi là abbbbba; với hoán vị abc cần 6 bản sao. Sau lần gán tiếp theo, chuỗi thành abbcbba; với cba cần 5 bản sao.