#pragma GCC optimize("Ofast", "unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,avx,avx2")
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,M=455;
vector<int> a[N],idx[N];
int n,siz[N],cnt[N],chk[N],i,j,k,yiyi,huuuuuuuuu;
void solve(){
    cin>>n;
    for(i=1;i<=n;i++)a[i].clear();
    map< int , int > hojarehoja;
    for(i=1;i<=n;i++){
        cin>>siz[i];
        for(j=0;j<siz[i];j++){
            cin>>k;
            a[i].push_back(k);
            hojarehoja[k]=0;
        }
    }

    yiyi=0;
    for(auto &ele:hojarehoja)ele.second = ++yiyi;
    for(i=1;i<=n;i++){
        for(j=0;j<siz[i];j++)a[i][j] = hojarehoja[a[i][j]];
    }
    for(i=1;i<=yiyi;i++)idx[i].clear(),chk[i]=0;

    for(i=1;i<=n;i++){
        if(siz[i]<M)continue;
        for(j=0;j<siz[i];j++)cnt[a[i][j]]=1;
        for(j=1;j<=n;j++){
            if(i==j)continue;
            huuuuuuuuu = 0;
            for(k=0;k<siz[j];k++){
                if(cnt[a[j][k]]){
                    huuuuuuuuu++;
                    if(huuuuuuuuu==2)break;
                }
            }
            if(huuuuuuuuu==2){
                for(k=0;k<siz[i];k++)cnt[a[i][k]]=0;
                cout<<i<<" "<<j<<"\n";
                return;
            }
        }
        for(j=0;j<siz[i];j++)cnt[a[i][j]]=0;
    }

    for(i=1;i<=n;i++){
        if(siz[i]>=M)continue;
        for(j=0;j<siz[i];j++)idx[a[i][j]].push_back(i);
    }

    for(i=1;i<=yiyi;i++){
        for(auto &id:idx[i]){
            for(j=0;j<siz[id];j++){
                if(a[id][j]==i)continue;
                if(chk[a[id][j]]){
                    cout<<id<<" "<<chk[a[id][j]]<<"\n";
                    return ;
                }
                chk[a[id][j]]=id;
            }
        }

        for(auto &id:idx[i]){
            for(j=0;j<siz[id];j++){
                chk[a[id][j]]=0;
            }
        }

    }

    cout<<"-1\n";

}
int main(){
    ios_base:: sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    int t;cin>>t;
    while(t--)solve();
}
