#P1073G. Yet Another LCP Problem

    ID: 4961 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 10 Uploaded By: Tags>data structuresstring suffix structures*2600

Yet Another LCP Problem

Description

Let LCP(s,t)\text{LCP}(s, t) be the length of the longest common prefix of strings ss and tt. Also let s[xy]s[x \dots y] be the substring of ss from index xx to index yy (inclusive). For example, if s=s = "abcde", then s[13]=s[1 \dots 3] = "abc", s[25]=s[2 \dots 5] = "bcde".

You are given a string ss of length nn and qq queries. Each query is a pair of integer sets a1,a2,,aka_1, a_2, \dots, a_k and b1,b2,,blb_1, b_2, \dots, b_l. Calculate i=1i=kj=1j=lLCP(s[ain],s[bjn])\sum\limits_{i = 1}^{i = k} \sum\limits_{j = 1}^{j = l}{\text{LCP}(s[a_i \dots n], s[b_j \dots n])} for each query.

The first line contains two integers nn and qq (1n,q21051 \le n, q \le 2 \cdot 10^5) — the length of string ss and the number of queries, respectively.

The second line contains a string ss consisting of lowercase Latin letters (s=n|s| = n).

Next 3q3q lines contains descriptions of queries — three lines per query. The first line of each query contains two integers kik_i and lil_i (1ki,lin1 \le k_i, l_i \le n) — sizes of sets aa and bb respectively.

The second line of each query contains kik_i integers a1,a2,akia_1, a_2, \dots a_{k_i} (1a1<a2<<akin1 \le a_1 < a_2 < \dots < a_{k_i} \le n) — set aa.

The third line of each query contains lil_i integers b1,b2,blib_1, b_2, \dots b_{l_i} (1b1<b2<<blin1 \le b_1 < b_2 < \dots < b_{l_i} \le n) — set bb.

It is guaranteed that i=1i=qki2105\sum\limits_{i = 1}^{i = q}{k_i} \le 2 \cdot 10^5 and i=1i=qli2105\sum\limits_{i = 1}^{i = q}{l_i} \le 2 \cdot 10^5.

Print qq integers — answers for the queries in the same order queries are given in the input.

Input

The first line contains two integers nn and qq (1n,q21051 \le n, q \le 2 \cdot 10^5) — the length of string ss and the number of queries, respectively.

The second line contains a string ss consisting of lowercase Latin letters (s=n|s| = n).

Next 3q3q lines contains descriptions of queries — three lines per query. The first line of each query contains two integers kik_i and lil_i (1ki,lin1 \le k_i, l_i \le n) — sizes of sets aa and bb respectively.

The second line of each query contains kik_i integers a1,a2,akia_1, a_2, \dots a_{k_i} (1a1<a2<<akin1 \le a_1 < a_2 < \dots < a_{k_i} \le n) — set aa.

The third line of each query contains lil_i integers b1,b2,blib_1, b_2, \dots b_{l_i} (1b1<b2<<blin1 \le b_1 < b_2 < \dots < b_{l_i} \le n) — set bb.

It is guaranteed that i=1i=qki2105\sum\limits_{i = 1}^{i = q}{k_i} \le 2 \cdot 10^5 and i=1i=qli2105\sum\limits_{i = 1}^{i = q}{l_i} \le 2 \cdot 10^5.

Output

Print qq integers — answers for the queries in the same order queries are given in the input.

Sample Input 1

7 4
abacaba
2 2
1 2
1 2
3 1
1 2 3
7
1 7
1
1 2 3 4 5 6 7
2 2
1 5
1 5

Sample Output 1

13
2
12
16

Note

Description of queries:

  1. In the first query s[17]=abacabas[1 \dots 7] = \text{abacaba} and s[27]=bacabas[2 \dots 7] = \text{bacaba} are considered. The answer for the query is LCP(abacaba,abacaba)+LCP(abacaba,bacaba)+LCP(bacaba,abacaba)+LCP(bacaba,bacaba)=7+0+0+6=13\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{bacaba}) + \text{LCP}(\text{bacaba}, \text{abacaba}) + \text{LCP}(\text{bacaba}, \text{bacaba}) = 7 + 0 + 0 + 6 = 13.
  2. In the second query s[17]=abacabas[1 \dots 7] = \text{abacaba}, s[27]=bacabas[2 \dots 7] = \text{bacaba}, s[37]=acabas[3 \dots 7] = \text{acaba} and s[77]=as[7 \dots 7] = \text{a} are considered. The answer for the query is LCP(abacaba,a)+LCP(bacaba,a)+LCP(acaba,a)=1+0+1=2\text{LCP}(\text{abacaba}, \text{a}) + \text{LCP}(\text{bacaba}, \text{a}) + \text{LCP}(\text{acaba}, \text{a}) = 1 + 0 + 1 = 2.
  3. In the third query s[17]=abacabas[1 \dots 7] = \text{abacaba} are compared with all suffixes. The answer is the sum of non-zero values: LCP(abacaba,abacaba)+LCP(abacaba,acaba)+LCP(abacaba,aba)+LCP(abacaba,a)=7+1+3+1=12\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{acaba}) + \text{LCP}(\text{abacaba}, \text{aba}) + \text{LCP}(\text{abacaba}, \text{a}) = 7 + 1 + 3 + 1 = 12.
  4. In the fourth query s[17]=abacabas[1 \dots 7] = \text{abacaba} and s[57]=abas[5 \dots 7] = \text{aba} are considered. The answer for the query is LCP(abacaba,abacaba)+LCP(abacaba,aba)+LCP(aba,abacaba)+LCP(aba,aba)=7+3+3+3=16\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{aba}) + \text{LCP}(\text{aba}, \text{abacaba}) + \text{LCP}(\text{aba}, \text{aba}) = 7 + 3 + 3 + 3 = 16.