У 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\), сделав несколько (возможно, ноль) операций на ней.
Выходные данные
Для каждого набора входных данных выведите «Yes», если Ashish может превратить \(a\) в \(b\) после некоторого числа операций, иначе выведите «No».
Вы можете выводить каждый символ в любом регистре (верхнем или нижнем).
Примечание
В первом наборе входных данных можно доказать, что невозможно превратить \(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».
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 3 3 abc bcd 4 2 abba azza 2 1 zz aa 6 2 aaabba ddddcc
|
No
Yes
No
Yes
|