#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define nl "\n"
#define vi vector<int>
#define all(v) v.begin(), v.end()
#define SORT(v) sort(all(v))
#define SORTX(v) sort(v.begin(), v.end(), greater<int>())
#define read(a) for (auto &i : a) cin >> i
#define Printv(a) for (auto &i : a) cout << i << " "
#define pii pair<int, int>
#define M_ShahaT ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
void FIO(){
#ifndef ONLINE_JUDGE
freopen("Input.txt","r",stdin);
freopen("Output.txt","w",stdout);
#endif
}
int dx[] = {1, 0, -1, 0, -1, -1, 1, 1};
int dy[] = {0, -1, 0, 1, -1, 1, -1, 1};
char di[] = {'D', 'L', 'U', 'R'};
double const PI=acos(-1);
const ll INF = 1e18;
const ll mod=1e9+7;
const int N = 1e6 + 5;
int f_1_to_n(int n){
return n*(n+1)/2;
}
bool valid(int x,int y,int row ,int col){
return x<row&&x>=0&&y<col&&y>=0;
}
void solve_case() {
ll n,l;cin>>n>>l;
ll temp=l;
int bits=0;
while(l){
bits++;
l>>=1;
}
ll tempbit=bits;
ll mx=1;
while(bits){
mx=mx<<1;
bits--;
}
mx--;//all bits 1 1 1 1 1 1
if(tempbit&1){ // find max alternating
for(int i=1;i<tempbit;i+=2){
mx=mx^(1<<i);
}
}else{
for(int i=0;i<tempbit;i+=2){
mx=mx^(1<<i);
}
}
ll ans=0;
if(mx<=temp){
ans=tempbit-1;
}else {
ans=tempbit-2;
}
cout<<(n<=ans?"YES\n":"NO\n");
}
int main(){
M_ShahaT
FIO();
int t=1;
cin >> t;
for(int i=1;i<=t;i++){
solve_case();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG5sICJcbiIKI2RlZmluZSB2aSB2ZWN0b3I8aW50PgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBTT1JUKHYpIHNvcnQoYWxsKHYpKQojZGVmaW5lIFNPUlRYKHYpIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpLCBncmVhdGVyPGludD4oKSkKI2RlZmluZSByZWFkKGEpIGZvciAoYXV0byAmaSA6IGEpIGNpbiA+PiBpCiNkZWZpbmUgUHJpbnR2KGEpIGZvciAoYXV0byAmaSA6IGEpIGNvdXQgPDwgaSA8PCAiICIKI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KI2RlZmluZSBNX1NoYWhhVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgoKdm9pZCBGSU8oKXsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oIklucHV0LnR4dCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oIk91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwojZW5kaWYKfQppbnQgZHhbXSA9IHsxLCAwLCAtMSwgMCwgLTEsIC0xLCAxLCAxfTsKaW50IGR5W10gPSB7MCwgLTEsIDAsIDEsIC0xLCAxLCAtMSwgMX07CmNoYXIgZGlbXSA9IHsnRCcsICdMJywgJ1UnLCAnUid9Owpkb3VibGUgY29uc3QgUEk9YWNvcygtMSk7CmNvbnN0IGxsIElORiA9IDFlMTg7CmNvbnN0IGxsIG1vZD0xZTkrNzsKY29uc3QgaW50IE4gPSAxZTYgKyA1OwppbnQgZl8xX3RvX24oaW50IG4pewogICAgcmV0dXJuIG4qKG4rMSkvMjsKfQpib29sIHZhbGlkKGludCB4LGludCB5LGludCByb3cgLGludCBjb2wpewogICAgcmV0dXJuIHg8cm93JiZ4Pj0wJiZ5PGNvbCYmeT49MDsKfQoKCnZvaWQgc29sdmVfY2FzZSgpIHsKIGxsIG4sbDtjaW4+Pm4+Pmw7CiBsbCB0ZW1wPWw7CiBpbnQgYml0cz0wOwoKIHdoaWxlKGwpewogICAgIGJpdHMrKzsKICAgICBsPj49MTsKIH0KCmxsIHRlbXBiaXQ9Yml0czsKCiBsbCBteD0xOwp3aGlsZShiaXRzKXsKICAgbXg9bXg8PDE7CiAgICAgYml0cy0tOwogfQpteC0tOy8vYWxsIGJpdHMgMSAxICAxIDEgIDEgMQppZih0ZW1wYml0JjEpeyAvLyBmaW5kIG1heCBhbHRlcm5hdGluZwogICAgCiAgICBmb3IoaW50IGk9MTtpPHRlbXBiaXQ7aSs9Mil7CgogICAgICAgICAgICBteD1teF4oMTw8aSk7CgogICAgfQogICAgCiAgICAKfWVsc2V7CiAgICAKICAgIGZvcihpbnQgaT0wO2k8dGVtcGJpdDtpKz0yKXsKCiAgICAgICAgbXg9bXheKDE8PGkpOwogICAgfQogICAgCn0KbGwgYW5zPTA7CiAgICAgICAgICAgICAgICAgICAKaWYobXg8PXRlbXApewogICAgYW5zPXRlbXBiaXQtMTsKfWVsc2UgewogICBhbnM9dGVtcGJpdC0yOwp9CmNvdXQ8PChuPD1hbnM/IllFU1xuIjoiTk9cbiIpOwp9CgoKCgppbnQgbWFpbigpewogICAgTV9TaGFoYVQKICAgIEZJTygpOwoKICAgIGludCB0PTE7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luID4+IHQ7CiAgICBmb3IoaW50IGk9MTtpPD10O2krKyl7CgogICAgICAgIHNvbHZlX2Nhc2UoKTsKCiAgICB9CiAgICByZXR1cm4gMDsKfQ==