Вам заданы две строки $$$s$$$ и $$$t$$$, состоящие из строчных букв латинского алфавита. Также у вас есть строка $$$z$$$, которая изначально пуста. Вы хотите, чтобы строка $$$z$$$ стала равна строке $$$t$$$. Для этого вы можете выполнять следующую операцию: добавить любую подпоследовательность строки $$$s$$$ в конец строки $$$z$$$. Подпоследовательность — это последовательность, которая получается из данной путем удаления нуля или более ее элементов. Например, если $$$z = ac$$$, $$$s = abcde$$$, вы можете превратить $$$z$$$ в следующие строки за одну операцию:
Обратите внимание, что строка $$$s$$$ не меняется после операций.
Посчитайте минимальное количество операций, необходимое для того, чтобы превратить строку $$$z$$$ в строку $$$t$$$.
Первая строка содержит единственное число $$$T$$$ ($$$1 \le T \le 100$$$) — количество наборов входных данных.
Первая строка каждого набора входных данных содержит строку $$$s$$$ ($$$1 \le |s| \le 10^5$$$), состоящую из строчных букв латинского алфавита.
Вторая строка каждого набора входных данных содержит строку $$$t$$$ ($$$1 \le |t| \le 10^5$$$), состоящую из строчных букв латинского алфавита.
Гарантируется, что суммарная длина строк $$$s$$$ и $$$t$$$ во входных данных не превосходит $$$2 \cdot 10^5$$$.
На каждый набор входных данных выведите одно число — минимальное количество операций, необходимое для того, чтобы превратить строку $$$z$$$ в строку $$$t$$$. Если это невозможно выведите $$$-1$$$.
3 aabce ace abacaba aax ty yyt
1 -1 3
Название |
---|