#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long double ld;
const ld PI = acosl(-1.0L);
const ld EPS = 1e-12L;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n, m;
ld z;
cin >> n >> m >> z;
vector<ld> px(n), py(n);
for (int i = 0; i < n; i++) {
cin >> px[i] >> py[i];
}
ld half_z = z / 2.0L;
vector<pair<ld, int>> events;
for (int i = 0; i < n; i++) {
ld x = px[i];
ld y = py[i];
ld r = sqrtl(x*x + y*y);
ld alpha = atan2l(y, x);
if (alpha < 0) alpha += 2*PI;
ld ratio = half_z / r;
ld lo, hi;
if (ratio >= 1.0L) {
lo = alpha - PI/2;
hi = alpha + PI/2;
} else {
ld delta = asinl(ratio);
lo = alpha - delta;
hi = alpha + delta;
}
// Normalize lo to [0, 2*PI)
while (lo < 0) lo += 2*PI;
while (lo >= 2*PI) lo -= 2*PI;
// Normalize hi to [0, 2*PI)
while (hi < 0) hi += 2*PI;
while (hi >= 2*PI) hi -= 2*PI;
if (lo <= hi) {
events.push_back({lo, 1});
events.push_back({hi, -1});
} else {
// Interval wraps around 0
events.push_back({0.0L, 1});
events.push_back({hi, -1});
events.push_back({lo, 1});
events.push_back({2*PI, -1});
}
}
sort(events.begin(), events.end(), [](const pair<ld,int>& a, const pair<ld,int>& b) {
if (fabsl(a.first - b.first) < EPS) return a.second > b.second;
return a.first < b.first;
});
int max_count = 0, count = 0;
for (const auto& ev : events) {
count += ev.second;
max_count = max(max_count, count);
}
cout << (max_count >= m ? "Yes" : "No") << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwpjb25zdCBsZCBQSSA9IGFjb3NsKC0xLjBMKTsKY29uc3QgbGQgRVBTID0gMWUtMTJMOwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGludCBUOwogICAgY2luID4+IFQ7CgogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGludCBuLCBtOwogICAgICAgIGxkIHo7CiAgICAgICAgY2luID4+IG4gPj4gbSA+PiB6OwoKICAgICAgICB2ZWN0b3I8bGQ+IHB4KG4pLCBweShuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjaW4gPj4gcHhbaV0gPj4gcHlbaV07CiAgICAgICAgfQoKICAgICAgICBsZCBoYWxmX3ogPSB6IC8gMi4wTDsKCiAgICAgICAgdmVjdG9yPHBhaXI8bGQsIGludD4+IGV2ZW50czsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgbGQgeCA9IHB4W2ldOwogICAgICAgICAgICBsZCB5ID0gcHlbaV07CiAgICAgICAgICAgIGxkIHIgPSBzcXJ0bCh4KnggKyB5KnkpOwogICAgICAgICAgICBsZCBhbHBoYSA9IGF0YW4ybCh5LCB4KTsKICAgICAgICAgICAgaWYgKGFscGhhIDwgMCkgYWxwaGEgKz0gMipQSTsKCiAgICAgICAgICAgIGxkIHJhdGlvID0gaGFsZl96IC8gcjsKCiAgICAgICAgICAgIGxkIGxvLCBoaTsKICAgICAgICAgICAgaWYgKHJhdGlvID49IDEuMEwpIHsKICAgICAgICAgICAgICAgIGxvID0gYWxwaGEgLSBQSS8yOwogICAgICAgICAgICAgICAgaGkgPSBhbHBoYSArIFBJLzI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsZCBkZWx0YSA9IGFzaW5sKHJhdGlvKTsKICAgICAgICAgICAgICAgIGxvID0gYWxwaGEgLSBkZWx0YTsKICAgICAgICAgICAgICAgIGhpID0gYWxwaGEgKyBkZWx0YTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gTm9ybWFsaXplIGxvIHRvIFswLCAyKlBJKQogICAgICAgICAgICB3aGlsZSAobG8gPCAwKSBsbyArPSAyKlBJOwogICAgICAgICAgICB3aGlsZSAobG8gPj0gMipQSSkgbG8gLT0gMipQSTsKICAgICAgICAgICAgLy8gTm9ybWFsaXplIGhpIHRvIFswLCAyKlBJKQogICAgICAgICAgICB3aGlsZSAoaGkgPCAwKSBoaSArPSAyKlBJOwogICAgICAgICAgICB3aGlsZSAoaGkgPj0gMipQSSkgaGkgLT0gMipQSTsKCiAgICAgICAgICAgIGlmIChsbyA8PSBoaSkgewogICAgICAgICAgICAgICAgZXZlbnRzLnB1c2hfYmFjayh7bG8sIDF9KTsKICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoX2JhY2soe2hpLCAtMX0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gSW50ZXJ2YWwgd3JhcHMgYXJvdW5kIDAKICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoX2JhY2soezAuMEwsIDF9KTsKICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoX2JhY2soe2hpLCAtMX0pOwogICAgICAgICAgICAgICAgZXZlbnRzLnB1c2hfYmFjayh7bG8sIDF9KTsKICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoX2JhY2soezIqUEksIC0xfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHNvcnQoZXZlbnRzLmJlZ2luKCksIGV2ZW50cy5lbmQoKSwgW10oY29uc3QgcGFpcjxsZCxpbnQ+JiBhLCBjb25zdCBwYWlyPGxkLGludD4mIGIpIHsKICAgICAgICAgICAgaWYgKGZhYnNsKGEuZmlyc3QgLSBiLmZpcnN0KSA8IEVQUykgcmV0dXJuIGEuc2Vjb25kID4gYi5zZWNvbmQ7CiAgICAgICAgICAgIHJldHVybiBhLmZpcnN0IDwgYi5maXJzdDsKICAgICAgICB9KTsKCiAgICAgICAgaW50IG1heF9jb3VudCA9IDAsIGNvdW50ID0gMDsKICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGV2IDogZXZlbnRzKSB7CiAgICAgICAgICAgIGNvdW50ICs9IGV2LnNlY29uZDsKICAgICAgICAgICAgbWF4X2NvdW50ID0gbWF4KG1heF9jb3VudCwgY291bnQpOwogICAgICAgIH0KCiAgICAgICAgY291dCA8PCAobWF4X2NvdW50ID49IG0gPyAiWWVzIiA6ICJObyIpIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K