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))
def find(x):
while x != p[x]:
p[x] = p[p[x]]
x = p[x]
return x
def unite(x, y):
x = find(x)
y = find(y)
if x != y:
p[y] = x
return True
return False
s_indices = []
sintervals = []
for i in range(n):
u, v = a[i]
if unite(u, v):
s_indices.append(i + 1)
sintervals.append((min(u, v), max(u, v)))
print(len(s_indices))
print(*s_indices)
t=int(input())
for i in range(t):
solve()
ZGVmIHNvbHZlKCk6CiAgICBuID0gaW50KGlucHV0KCkpCiAgICBhID0gW3R1cGxlKG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkpIGZvciBpIGluIHJhbmdlKG4pXQoKICAgIE4gPSAyICogMTAqKjUgKyA1CiAgICBwID0gbGlzdChyYW5nZShOKSkgIAoKICAgIGRlZiBmaW5kKHgpOgogICAgICAgIHdoaWxlIHggIT0gcFt4XToKICAgICAgICAgICAgcFt4XSA9IHBbcFt4XV0KICAgICAgICAgICAgeCA9IHBbeF0KICAgICAgICByZXR1cm4geAoKICAgIGRlZiB1bml0ZSh4LCB5KToKICAgICAgICB4ID0gZmluZCh4KQogICAgICAgIHkgPSBmaW5kKHkpCiAgICAgICAgaWYgeCAhPSB5OgogICAgICAgICAgICBwW3ldID0geAogICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIHNfaW5kaWNlcyA9IFtdCiAgICBzaW50ZXJ2YWxzID0gW10KCiAgICBmb3IgaSBpbiByYW5nZShuKToKICAgICAgICB1LCB2ID0gYVtpXQogICAgICAgIGlmIHVuaXRlKHUsIHYpOgogICAgICAgICAgICBzX2luZGljZXMuYXBwZW5kKGkgKyAxKQogICAgICAgICAgICBzaW50ZXJ2YWxzLmFwcGVuZCgobWluKHUsIHYpLCBtYXgodSwgdikpKQoKICAgIHByaW50KGxlbihzX2luZGljZXMpKQogICAgcHJpbnQoKnNfaW5kaWNlcykKCnQ9aW50KGlucHV0KCkpCmZvciBpIGluIHJhbmdlKHQpOgoJc29sdmUoKQo=