Вам задана строка \(s\). Вы можете построить новую строку \(p\) из \(s\), используя следующую операцию не более двух раз:
- выберем любую подпоследовательность \(s_{i_1}, s_{i_2}, \dots, s_{i_k}\), где \(1 \le i_1 < i_2 < \dots < i_k \le |s|\);
- удалим выбранную подпоследовательность из \(s\) (\(s\) может стать пустой);
- присоединим выбранную подпоследовательность справа к \(p\) как строку (другими словами, \(p = p + s_{i_1}s_{i_2}\dots s_{i_k}\)).
Конечно, в начале строка \(p\) является пустой.
Например, пусть \(s = \text{ababcd}\). Сначала выберем подпоследовательность \(s_1 s_4 s_5 = \text{abc}\) — в результате мы получим \(s = \text{bad}\) и \(p = \text{abc}\). Потом, выберем \(s_1 s_2 = \text{ba}\) — мы получим \(s = \text{d}\) и \(p = \text{abcba}\). Таким образом, возможно построить \(\text{abcba}\) из \(\text{ababcd}\).
Можно ли построить заданную строку \(t\), используя описанный выше алгоритм?
Выходные данные
Выведите \(T\) ответов — по одному на набор. Выведите YES (регистр не важен), если возможно построить \(t\), и NO (регистр не важен) иначе.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 ababcd abcba a b defi fed xyz x
|
YES
NO
NO
YES
|