如果存在一个整数 $k$,使得字符串 $S$ 向右循环移动 $k$ 位后与字符串 $T$ 相等,则称字符串 $S$ 和 $T$ 是循环右移等价的。
现在给定 $n$ 个长度为 $m$ 的由小写字母组成的字符串,共有 $Q$ 次查询。每次查询提供两个正整数 $x$ 和 $y$。如果字符串 $s_x$ 和 $s_y$ 是循环右移等价的,输出 'Yes';否则,输出 'No'。
输入格式
输入包含多个测试用例。第一行包含一个整数 $T$ ($1 \le T \le 5$),表示测试用例的数量。接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \times m \le 10^5$),分别表示字符串的数量和字符串的长度。
接下来 $n$ 行,每行包含一个由小写字母组成的字符串 $s_i$。
下一行包含一个正整数 $Q$ ($1 \le Q \le 10^5$)。
接下来 $Q$ 行,每行包含两个整数 $x, y$ ($1 \le x, y \le n$),询问字符串 $s_x$ 和 $s_y$ 是否循环同构。
输出格式
对于每个测试用例,输出 $Q$ 行。每行输出一个字符串,表示当前查询的字符串 $s_x$ 和 $s_y$ 是否循环同构。如果它们是循环同构的,输出 'Yes';否则,输出 'No'。
样例
输入 1
2 2 2 ab ba 1 1 2 4 3 aab baa bba bab 6 1 2 1 3 1 4 2 3 2 4 3 4
输出 1
Yes Yes No No No No Yes