def solve():
n = int(input())
a = [tuple(map(int, input().split())) for i in range(n)]
N = 2 * 10**5 + 5
p = list(range(N))
size = [1] * N
def find(x):
if x != p[x]:
p[x] = find(p[x])
return p[x]
def unite(x, y):
x = find(x)
y = find(y)
if x == y:
return False
if size[x] < size[y]:
x, y = y, x
p[y] = x
size[x] += size[y]
return True
s_indices = []
for i in range(n):
u, v = a[i]
if unite(u, v):
s_indices.append(i + 1)
print(len(s_indices))
print(*s_indices)
# Main
t = int(input())
for _ in range(t):
solve()
ZGVmIHNvbHZlKCk6CiAgICBuID0gaW50KGlucHV0KCkpCiAgICBhID0gW3R1cGxlKG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkpIGZvciBpIGluIHJhbmdlKG4pXQoKICAgIE4gPSAyICogMTAqKjUgKyA1CiAgICBwID0gbGlzdChyYW5nZShOKSkgICAgICAKICAgIHNpemUgPSBbMV0gKiBOICAgICAgICAgIAoKICAgIGRlZiBmaW5kKHgpOgogICAgICAgIGlmIHggIT0gcFt4XToKICAgICAgICAgICAgcFt4XSA9IGZpbmQocFt4XSkgIAogICAgICAgIHJldHVybiBwW3hdCgogICAgZGVmIHVuaXRlKHgsIHkpOgogICAgICAgIHggPSBmaW5kKHgpCiAgICAgICAgeSA9IGZpbmQoeSkKICAgICAgICBpZiB4ID09IHk6CiAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgIAogICAgICAgIGlmIHNpemVbeF0gPCBzaXplW3ldOgogICAgICAgICAgICB4LCB5ID0geSwgeAogICAgICAgIHBbeV0gPSB4CiAgICAgICAgc2l6ZVt4XSArPSBzaXplW3ldCiAgICAgICAgcmV0dXJuIFRydWUKCiAgICBzX2luZGljZXMgPSBbXQoKICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgIHUsIHYgPSBhW2ldCiAgICAgICAgaWYgdW5pdGUodSwgdik6CiAgICAgICAgICAgIHNfaW5kaWNlcy5hcHBlbmQoaSArIDEpCgogICAgcHJpbnQobGVuKHNfaW5kaWNlcykpCiAgICBwcmludCgqc19pbmRpY2VzKQoKIyBNYWluCnQgPSBpbnQoaW5wdXQoKSkKZm9yIF8gaW4gcmFuZ2UodCk6CiAgICBzb2x2ZSgpCg==