void kdog(int test) {
int n, m; cin >> n >> m;
for (int i = 0; i < m; i++) cout << 1;
for (int i = 0; i < n - m; i++) cout << 0;
cout << "\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
T = 1;
cin >> T;
init();
for (int test = 1; test <= T; test++) {
kdog(test);
}
return 0;
}
void kdog(int test) {
int n; cin >> n;
cout << (n - 1) * 2 + 1 << "\n";
cout << 1 << " " << 1 << " " << n << "\n";
for (int i = 2; i <= n; i++) {
cout << i << " " << 1 << " " << n - i + 1 << "\n";
cout << i << " " << n - i + 2 << " " << n << "\n";
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
T = 1;
cin >> T;
init();
for (int test = 1; test <= T; test++) {
kdog(test);
}
return 0;
}
int lowbit(int x) {
return x & (-x);
}
int ne(int x) {
return lowbit(~x);
}
int count(int x) {
int res = 0;
while (x) {
res += x % 2;
x /= 2;
}
return res;
}
void kdog(int test) {
int n, k; cin >> n >> k;
vi a(n); cin >> a;
priority_queue<pii, vector<pii>, greater<pii>> q;
for (int i = 0; i < n; i++) {
q.push({ne(a[i]), a[i]});
}
while (k > 0) {
auto [v, x] = q.top(); q.pop();
if (v > k) {
q.push({v, x});
break;
}
k -= v;
q.push({ne(x | v), x | v});
}
int res = 0;
while (!q.empty()) {
auto [v, x] = q.top(); q.pop();
res += count(x);
}
cout << res << "\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
T = 1;
cin >> T;
init();
for (int test = 1; test <= T; test++) {
kdog(test);
}
return 0;
}
void kdog(int test) {
int n, k; cin >> n >> k;
vi p(n), d(n); cin >> p >> d;
map<int, int> pos;
for (int i = 0; i < n; i++) pos[p[i]] = i + 1;
int q; cin >> q;
auto solve = [&]() -> void {
int x; cin >> x;
vi vis(n);
int dir = 1, t = 0;
while (1) {
int px = pos[x];
if (px && t % k == d[px - 1]) {
vis[px - 1]++;
dir = -dir;
if (vis[px - 1] == 3) {
cout << "NO\n";
return;
}
}
bool f = 0;
if (!px) {
auto it = lower_bound(all(p), x);
if (it == p.end()) {
cout << "YES\n";
return;
}
int i = it - p.begin();
for ( ; i < n; i++) {
int ot = t + p[i] - x;
if (ot % k == d[i]) {
t = ot;
x = p[i];
f = 1;
break;
}
}
} else if (dir == -1) {
for (int i = px - 2; i >= 0; i--) {
int ot = t + p[px - 1] - p[i];
if (ot % k == d[i]) {
t = ot;
x = p[i];
f = 1;
break;
}
}
} else {
for (int i = px; i < n; i++) {
int ot = t + p[i] - p[px - 1];
if (ot % k == d[i]) {
t = ot;
x = p[i];
f = 1;
break;
}
}
}
if (!f) {
cout << "YES\n";
return;
}
}
};
while (q--) solve();
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
T = 1;
cin >> T;
init();
for (int test = 1; test <= T; test++) {
kdog(test);
}
return 0;
}