C. Равенство строк
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Ashish есть две строки $$$a$$$ и $$$b$$$ длины $$$n$$$ и целое число $$$k$$$. Строки содержат только строчные буквы латинского алфавита.

Он хочет превратить строку $$$a$$$ в строку $$$b$$$, исполнив несколько (возможно, ноль) операций над $$$a$$$.

За одну операцию он может сделать одно из двух возможных действий:

  • выбрать индекс $$$i$$$ ($$$1 \leq i\leq n-1$$$) и поменять местами $$$a_i$$$ и $$$a_{i+1}$$$, или
  • выбрать индекс $$$i$$$ ($$$1 \leq i \leq n-k+1$$$) и, если все символы среди $$$a_i, a_{i+1}, \ldots, a_{i+k-1}$$$ равны какому-то символу $$$c$$$ ($$$c \neq$$$ «z»), заменить каждый из них на символ $$$(c+1)$$$, таким образом, «a» заменяется на «b», «b» заменяется на «c» и так далее.

Обратите внимание, что он может исполнить любое число операций, и операции можно выполнять только на строке $$$a$$$.

Помогите Ashish определить, возможно ли превратить $$$a$$$ в $$$b$$$, сделав несколько (возможно, ноль) операций на ней.

Входные данные

В первой строке записано одно целое число $$$t$$$ ($$$1 \leq t \leq 10^5$$$) — количество наборов входных данных. Далее следуют описания наборов входных данных.

В первой строке каждого набора входных данных записаны два целых числа $$$n$$$ ($$$2 \leq n \leq 10^6$$$) и $$$k$$$ ($$$1 \leq k \leq n$$$).

Во второй строке записана одна строка $$$a$$$ длины $$$n$$$, состоящая только из строчных букв латинского алфавита.

В третьей строке записана одна строка $$$b$$$ длины $$$n$$$, состоящая только из строчных букв латинского алфавита.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^6$$$.

Выходные данные

Для каждого набора входных данных выведите «Yes», если Ashish может превратить $$$a$$$ в $$$b$$$ после некоторого числа операций, иначе выведите «No».

Вы можете выводить каждый символ в любом регистре (верхнем или нижнем).

Пример
Входные данные
4
3 3
abc
bcd
4 2
abba
azza
2 1
zz
aa
6 2
aaabba
ddddcc
Выходные данные
No
Yes
No
Yes
Примечание

В первом наборе входных данных можно доказать, что невозможно превратить $$$a$$$ в $$$b$$$.

Во втором наборе входных данных

«abba» $$$\xrightarrow{\text{inc}}$$$ «acca» $$$\xrightarrow{\text{inc}}$$$ $$$\ldots$$$ $$$\xrightarrow{\text{inc}}$$$ «azza».

Здесь «swap» обозначает операцию первого типа, а «inc» обозначает операцию второго типа.

В третьем наборе входных данных

«aaabba» $$$\xrightarrow{\text{swap}}$$$ «aaabab» $$$\xrightarrow{\text{swap}}$$$ «aaaabb» $$$\xrightarrow{\text{inc}}$$$ $$$\ldots$$$ $$$\xrightarrow{\text{inc}}$$$ «ddaabb» $$$\xrightarrow{\text{inc}}$$$ $$$\ldots$$$ $$$\xrightarrow{\text{inc}}$$$ «ddddbb» $$$\xrightarrow{\text{inc}}$$$ $$$\ldots$$$ $$$\xrightarrow{\text{inc}}$$$ «ddddcc».