import sys int1 = lambda x: int(x) - 1 # input = lambda: sys.stdin.buffer.readline() input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) i1 = lambda: int1(input()) mi = lambda: map(int, input().split()) mi1 = lambda: map(int1, input().split()) li = lambda: list(mi()) li1 = lambda: list(mi1()) lli = lambda n: [li() for _ in range(n)] INF = float("inf") mod = int(1e9 + 7) # mod = 998244353 n, q = mi() g = [list() for i in range(n)] for i in range(q): a, b = mi1() g[a].append((b, i)) ok = -1 ng = q while ng - ok > 1: mid = ok + ng >> 1 flag = False # check f = [-1] * n idx = [0] * n st = [] for i in range(n): if f[i] != -1: continue st.append(i) while st: cur = st.pop() if idx[cur] == 0: f[cur] = i while idx[cur] < len(g[cur]) and g[cur][idx[cur]][1] > mid: idx[cur] += 1 if idx[cur] == len(g[cur]): f[cur] = -2 else: to = g[cur][idx[cur]][0] if f[to] == i: flag = True st = [] break elif f[to] == -1: st.append(cur) st.append(to) idx[cur] += 1 elif f[to] == -2: st.append(cur) idx[cur] += 1 if flag: break # if flag: ng = mid else: ok = mid if ng == q: print(-1) else: print(ng + 1)