Вам даны два целых положительных числа \(x\) и \(y\). Вы можете совершать с числом \(x\) следующую операцию: записать его в двоичном виде без ведущих нулей, приписать справа \(0\) или \(1\), затем развернуть двоичную запись и превратить ее в десятичное число, которое окажется новым значением \(x\).
Например:
- \(34\) можно одной операцией превратить в \(81\): двоичная запись \(34\) — это \(100010\), если приписать справа \(1\), развернуть и убрать ведущие нули, можно получить \(1010001\), что является двоичной записью числа \(81\);
- \(34\) можно одной операцией превратить в \(17\): двоичная запись \(34\) — это \(100010\), если приписать справа \(0\), развернуть и убрать ведущие нули, можно получить \(10001\), что является двоичной записью числа \(17\);
- \(81\) можно одной операцией превратить в \(69\): двоичная запись \(81\) — это \(1010001\), если приписать справа \(0\), развернуть и убрать ведущие нули, можно получить \(1000101\), что является двоичной записью числа \(69\);
- \(34\) можно превратить в \(69\) за две операции: сначала превратить \(34\) в \(81\), а потом превратить \(81\) в \(69\).
Ваша задача — выяснить, можно ли превратить \(x\) в \(y\) за какое-то (возможно, нулевое) число операций.
Выходные данные
Выведите YES, если вы можете сделать \(x\) равным \(y\), или NO, если это невозможно.
Примечание
В первом примере не надо совершать никаких действий.
Четвертый пример разобран в условии задачи.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 3
|
YES
|
|
2
|
7 4
|
NO
|
|
3
|
2 8
|
NO
|
|
4
|
34 69
|
YES
|
|
5
|
8935891487501725 71487131900013807
|
YES
|