Under construction

Still being built. Things may change

Baby's First Suffix Array Problem

Time limit14sMemory limit512 MB

Summary
For each query substring x = s[l..r], count the suffixes of x that are lexicographically no larger than the suffix s[k..r].
Level

Hard8 of 10

Topics
String, String matching, Divide and conquer
Solved
No attempts yet

Problem

A suffix array for string ss of length nn is a permutation sasa of integers from 11 to nn such that s[sa1..n],s[sa2..n],…,s[san..n]s[sa_1..n], s[sa_2..n], \dots, s[sa_n..n] is the list of non-empty suffixes of ss sorted in lexicographical order. The rank table for suffixes of ss is a permutation rankrank of integers from 11 to nn such that ranksai=irank_{sa_i} = i.

Kotori has a string s=s1s2…sns = s_1s_2\dots s_n. She would like to ask mm queries. In the ii-th query, a substring x=s[li..ri]x = s[l_i..r_i] of ss is given, and Kotori would like to know the rank of the suffix s[ki..ri]s[k_i..r_i] of xx.

s[l..r]s[l..r] means the substring of ss that starts at the ll-th position and ends at the rr-th position, both inclusive.

Input

There are multiple test cases. The first line of the input contains an integer TT, the number of test cases. Each test case is as follows.

The first line contains two integers nn and mm (1≤n,m≤5×1041 \le n, m \le 5 \times 10^4), the length of the string and the number of queries.

The second line contains a string ss of length nn consisting only of lowercase English letters.

Each of the next mm lines contains three integers lil_i, rir_i, and kik_i (1≤li≤ri≤n1 \le l_i \le r_i \le n, li≤ki≤ril_i \le k_i \le r_i), describing a query.

The sum of nn over all test cases and the sum of mm over all test cases do not exceed 5×1045 \times 10^4.

Output

For each query, output one line containing one integer, the answer.

Examples1

  1. Example 1

    Input
    2
    10 4
    baaabbabba
    2 8 3
    1 1 1
    2 3 2
    2 5 4
    20 3
    cccbccbadaacbbbcccab
    14 17 16
    3 20 17
    17 20 18
    
    Expected output
    2
    1
    2
    3
    4
    15
    3