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

Некоторые преподаватели работают в образовательном центре «Сириус», параллельно обучаясь в университете. В таком случае поездка не освобождает их от выполнения домашнего задания, а потому они делают своё домашнее задание прямо в самолёте. Артём — один из таких преподавателей, и в вузе ему задали следующее домашнее задание.

С произвольной строкой $$$a$$$ чётной длины $$$m$$$ он может выполнять следующую операцию. Артём разделяет строку $$$a$$$ на две половины $$$x$$$ и $$$y$$$ одинаковой длины, после чего выполняет ровно одно из трёх действий:

  • Для каждого $$$i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\}$$$ присвоить $$$x_i = (x_i + y_i) \bmod 2$$$;
  • Для каждого $$$i \in \left\{ 1, 2, \ldots, \frac{m}{2}\right\}$$$ присвоить $$$y_i = (x_i + y_i) \bmod 2$$$;
  • Выполнить произвольное количество операций (те же операции, что описаны выше, применённые рекурсивно) со строками $$$x$$$ и $$$y$$$, независимо друг от друга. Обратите внимание, что в этом случае строки $$$x$$$ и $$$y$$$ должны иметь чётную длину.
После этого строка $$$a$$$ заменяется на строки $$$x$$$ и $$$y$$$, соединённые в том же порядке.

К сожалению, Артём уснул в самолёте, а потому его домашнее задание придётся выполнить вам. У Артёма есть две бинарные строки $$$s$$$ и $$$t$$$ длины $$$n$$$, каждая из которых состоит из $$$n$$$ символов 0 или 1. Определите, возможно ли за произвольное количество операций со строкой $$$s$$$ сделать её равной строке $$$t$$$.

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

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

Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^6$$$) — длина строк $$$s$$$ и $$$t$$$.

Вторая строка каждого набора входных данных содержит строку $$$s$$$ длины $$$n$$$, состоящую только из символов 0 и 1.

Третья строка каждого набора входных данных содержит строку $$$t$$$ длины $$$n$$$, состоящую только из символов 0 и 1.

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

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

Для каждого набора входных данных выведите «Yes» (без кавычек), если можно сделать строку $$$s$$$ равной строке $$$t$$$, и «No» в ином случае.

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.

Пример
Входные данные
3
8
00001001
10101001
8
00000000
00001001
6
010110
100010
Выходные данные
Yes
No
Yes
Примечание

В первом наборе входных данных строку 00001001 можно превратить в строку 10101001 за две операции. Схема действий изображена на рисунке ниже:

Во втором наборе входных данных строку 00000000 нельзя превратить ни в какую строку, кроме 00000000, так как при любой операции не могут образоваться ненулевые элементы.