#include <stdio.h>
#define N 200005
int parent[N], size[N];
int find(int x) {
if (x != parent[x])
parent[x] = find(parent[x]);
return parent[x];
}
int unite(int x, int y) {
x = find(x);
y = find(y);
if (x == y) return 0;
if (size[x] < size[y]) {
int temp = x;
x = y;
y = temp;
}
parent[y] = x;
size[x] += size[y];
return 1;
}
void solve() {
int n;
for (int i = 0; i < N; ++i) {
parent[i] = i;
size[i] = 1;
}
int s_indices[N], s_count = 0;
for (int i = 0; i < n; ++i) {
int u, v;
if (unite(u, v)) {
s_indices[s_count++] = i + 1;
}
}
for (int i = 0; i < s_count; ++i)
}
int main() {
int t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE4gMjAwMDA1CgppbnQgcGFyZW50W05dLCBzaXplW05dOwoKaW50IGZpbmQoaW50IHgpIHsKICAgIGlmICh4ICE9IHBhcmVudFt4XSkKICAgICAgICBwYXJlbnRbeF0gPSBmaW5kKHBhcmVudFt4XSk7CiAgICByZXR1cm4gcGFyZW50W3hdOwp9CgppbnQgdW5pdGUoaW50IHgsIGludCB5KSB7CiAgICB4ID0gZmluZCh4KTsKICAgIHkgPSBmaW5kKHkpOwogICAgaWYgKHggPT0geSkgcmV0dXJuIDA7CiAgICBpZiAoc2l6ZVt4XSA8IHNpemVbeV0pIHsKICAgICAgICBpbnQgdGVtcCA9IHg7CiAgICAgICAgeCA9IHk7CiAgICAgICAgeSA9IHRlbXA7CiAgICB9CiAgICBwYXJlbnRbeV0gPSB4OwogICAgc2l6ZVt4XSArPSBzaXplW3ldOwogICAgcmV0dXJuIDE7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgewogICAgICAgIHBhcmVudFtpXSA9IGk7CiAgICAgICAgc2l6ZVtpXSA9IDE7CiAgICB9CgogICAgaW50IHNfaW5kaWNlc1tOXSwgc19jb3VudCA9IDA7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBpbnQgdSwgdjsKICAgICAgICBzY2FuZigiJWQgJWQiLCAmdSwgJnYpOwogICAgICAgIGlmICh1bml0ZSh1LCB2KSkgewogICAgICAgICAgICBzX2luZGljZXNbc19jb3VudCsrXSA9IGkgKyAxOwogICAgICAgIH0KICAgIH0KCiAgICBwcmludGYoIiVkXG4iLCBzX2NvdW50KTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc19jb3VudDsgKytpKQogICAgICAgIHByaW50ZigiJWQgIiwgc19pbmRpY2VzW2ldKTsKICAgIHByaW50ZigiXG4iKTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIHNjYW5mKCIlZCIsICZ0KTsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K