Multiplication and Division by 2

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Consider the number xx stored in uint32 data type. We can multiply or divide it by 22 any number of times in any order. Can we obtain the number yy after some sequence of operations?

When aa is stored in an uint32, and we multiply it by 22, it transforms into (a2)mod232(a \cdot 2) \bmod 2^{32}. For example, (32)mod232=6(3 \cdot 2) \bmod 2^{32} = 6, and (2,147,483,6492)mod232=2(2\\,147\\,483\\,649 \cdot 2) \bmod 2^{32} = 2.

When aa is stored in an uint32, and we divide it by 22, it transforms into a2\left\lfloor\frac{a}{2}\right\rfloor. For example, 62=3\left\lfloor\frac{6}{2}\right\rfloor = 3, and 32=1\left\lfloor\frac{3}{2}\right\rfloor = 1.

입력

The first line contains an integer tt, the number of test cases (1t10001 \le t \le 1000). The next tt lines describe test cases, one per line. Each test case is given by two integers xx and yy (0x,y<2320 \le x, y < 2^{32}).

출력

For each test case, print a single word on a separate line: "Yes" if we can turn xx into yy using the allowed operations, or "No" otherwise.

힌트

In the first test case, we can multiply xx by 22, and then divide the result by 22 to get yy.

In the second test case, there is no way to turn xx into yy.