#include <bits/stdc++.h>

using namespace std;

#define MAGIC 350

vector <int> a[100005];
vector <pair<int, int>> b[200005];
int st[200005];

int main() {
    int T;
    scanf("%d", &T);

    while (T--) {
        int n;
        scanf("%d", &n);

        for (int i = 0; i < n; i++) a[i].clear();

        vector <int> big, small;
        vector <int> v;

        for (int i = 0; i < n; i++) {
            int x;
            scanf("%d", &x);

            if (x <= MAGIC) small.push_back(i);
            else big.push_back(i);

            for (int j = 0; j < x; j++) {
                int y;
                scanf("%d", &y);
                a[i].push_back(y);
                v.push_back(y);
            }

            sort(a[i].begin(), a[i].end());
        }

        // discretize
        sort(v.begin(), v.end());
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < a[i].size(); j++) {
                a[i][j] = lower_bound(v.begin(), v.end(), a[i][j]) - v.begin();
            }
        }
        for (int i = 0; i < v.size(); i++) {
            st[i] = -1;
            b[i].clear();
        }
        bool gg = 0;

        // within small
        {
            for (auto id : small) {
                for (int j = 0; j < a[id].size(); j++) {
                    for (int k = j + 1; k < a[id].size(); k++) {
                        b[a[id][j]].push_back(make_pair(a[id][k], id));
                    }
                }
            }

            for (int i = 0; i < v.size(); i++) {
                for (auto x : b[i]) {
                    if (st[x.first] != -1) {
                        printf("%d %d\n", st[x.first] + 1, x.second + 1);
                        gg = 1;
                        break;
                    }
                    st[x.first] = x.second;
                }
                for (auto x : b[i]) st[x.first] = -1;
                if (gg) break;
            }
        }

        if (gg) continue;

        // big
        {
            for (auto bigId : big) {
                for (auto x : a[bigId]) {
                    st[x] = bigId;
                }
                for (int i = 0; i < n; i++) {
                    if (i == bigId) continue;
                    int cnt = 0;
                    for (auto val : a[i]) {
                        if (st[val] != -1) cnt++;
                    }

                    if (cnt >= 2) {
                        gg = 1;
                        printf("%d %d\n", bigId + 1, i + 1);
                        break;
                    }
                }
                for (auto x : a[bigId]) {
                    st[x] = -1;
                }
                if (gg) break;
            }
        }

        if (gg) continue;

        printf("-1\n");
    }
}