#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
template <class T>
inline void cmin(T &a, T b) {
  ((a > b) && (a = b));
}
template <class T>
inline void cmax(T &a, T b) {
  ((a < b) && (a = b));
}
char IO;
template <class T = int>
T rd() {
  T s = 0;
  int f = 0;
  while (!isdigit(IO = getchar())) f |= IO == '-';
  do s = (s << 1) + (s << 3) + (IO ^ '0');
  while (isdigit(IO = getchar()));
  return f ? -s : s;
}
const int N = 2e5 + 10, INF = 1e9 + 10;
int n, m, k;
struct Edge {
  int to, nxt;
} e[N << 1];
int head[N], ecnt;
void AddEdge(int u, int v) {
  e[++ecnt] = (Edge){v, head[u]};
  head[u] = ecnt;
}
int fa[N], fl;
int ind[N];
int s[N], P[N];
int vis[N], lst[N], dep[N];
void Upd(int &u, int v) {
  if (dep[u] > dep[v]) u = v;
}
void dfs(int u) {
  if (!fl) return;
  vis[u] = 1, lst[u] = u, dep[u] = dep[fa[u]] + 1;
  for (int i = head[u], v = e[i].to; i; i = e[i].nxt, v = e[i].to) {
    if (!vis[v])
      fa[v] = u, dfs(v), s[u] += s[v], Upd(lst[u], lst[v]);
    else if (vis[v] == 2)
      fl = 0;
    else
      s[u]++, s[v]--, lst[u] = v, Upd(lst[u], v);
  }
  vis[u] = 2;
}
void dfs2(int u) {
  if (fa[u]) assert(s[u]);
  s[u] = s[u] > 1, s[u] |= s[lst[u]];
  for (int i = head[u], v = e[i].to; i; i = e[i].nxt, v = e[i].to)
    if (fa[v] == u) dfs2(v);
}
int main() {
  for (int _ = 1, _end = rd(); _ <= _end; ++_) {
    n = rd(), m = rd();
    for (int i = 1, iend = n; i <= iend; ++i) head[i] = 0;
    ecnt = 0;
    for (int i = 1, iend = m; i <= iend; ++i) {
      int u = rd(), v = rd();
      AddEdge(u, v);
    }
    for (int i = 1, iend = n; i <= iend; ++i) P[i] = i;
    random_shuffle(P + 1, P + n + 1);
    int cnt = 0, rt = -1;
    for (int i = 1, iend = n; i <= iend; ++i) {
      int u = P[i];
      if (++cnt > 100) break;
      for (int j = 1, jend = n; j <= jend; ++j) vis[j] = s[j] = 0;
      fl = 1, fa[u] = 0, dfs(u);
      if (fl) {
        rt = u;
        break;
      }
    }
    if (rt == -1) {
      puts("-1");
      continue;
    }
    cnt = 0, dfs2(rt);
    for (int i = 1, iend = n; i <= iend; ++i)
      if (!s[i]) cnt++;
    if (5 * cnt < n)
      puts("-1");
    else {
      for (int i = 1, iend = n; i <= iend; ++i)
        if (!s[i]) printf("%d ", i);
      puts("");
    }
  }
}
