给定一个字符串 $s$ 和若干次询问。对于第 $i$ 次询问,计算 $s[l_i..r_i]$ 中不同回文子串的数量。如果一个子串从右向左读和从左向右读相同,则称其为回文的。如果两个子串作为字符串不同,则它们被视为不同的子串。
输入格式
第一行包含一个非空字符串 $s$,由小写英文字母组成。字符串长度不超过 $10^5$。
第二行包含一个整数 $q$,表示询问次数 ($1 \le q \le 10^5$)。接下来 $q$ 行包含询问。每行包含两个整数 $l_i$ 和 $r_i$,用空格分隔 ($1 \le l_i \le r_i \le |s|$)。
输出格式
输出 $q$ 行。第 $i$ 行必须包含一个整数:第 $i$ 次询问的答案。
样例
样例输入 1
bbabaabbcabcabc 10 1 7 1 8 1 9 1 10 2 7 2 8 2 9 2 10 7 15 8 15
样例输出 1
7 7 8 8 6 7 8 8 4 3