CF1881A Don't Try to Count

Description

Given a string $ x $ of length $ n $ and a string $ s $ of length $ m $ ( $ n \cdot m \le 25 $ ), consisting of lowercase Latin letters, you can apply any number of operations to the string $ x $ . In one operation, you append the current value of $ x $ to the end of the string $ x $ . Note that the value of $ x $ will change after this. For example, if $ x = $ "aba", then after applying operations, $ x $ will change as follows: "aba" $ \rightarrow $ "abaaba" $ \rightarrow $ "abaabaabaaba". After what minimum number of operations $ s $ will appear in $ x $ as a substring? A substring of a string is defined as a contiguous segment of it.

Input Format

The first line of the input contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The first line of each test case contains two numbers $ n $ and $ m $ ( $ 1 \le n \cdot m \le 25 $ ) — the lengths of strings $ x $ and $ s $ , respectively. The second line of each test case contains the string $ x $ of length $ n $ . The third line of each test case contains the string $ s $ of length $ m $ .

Output Format

For each test case, output a single number — the minimum number of operations after which $ s $ will appear in $ x $ as a substring. If this is not possible, output $ -1 $ .

Explanation/Hint

In the first test case of the example, after $ 2 $ operations, the string will become "aaaa", and after $ 3 $ operations, it will become "aaaaaaaa", so the answer is $ 3 $ . In the second test case of the example, after applying $ 1 $ operation, the string will become " $ \text{e}\color{red}{\text{force}}\text{forc} $ ", where the substring is highlighted in red. In the fourth test case of the example, it can be shown that it is impossible to obtain the desired string as a substring.