export {}; const input = require("fs").readFileSync(0).toString().trim().split('\n'); const [n, m]: number[] = input[0].split(" ").map(Number); let parent: number[] = Array.from({length: n}, (_, i) => i); let rank: number[] = new Array(n).fill(0); const find = (x: number): number => { if(x !== parent[x]) return parent[x] = find(parent[x]); return parent[x]; } const union = (x: number, y: number): boolean => { x = find(x); y = find(y); if(x===y) return false; if(rank[x] < rank[y]) [x, y] = [y, x]; parent[y] = x; if(rank[x] === rank[y]) rank[x] += 1; return true; } let ans: number = 0; for(let i=1; i<=m; i++) { let [u, v]: number[] = input[i].split(" ").map(Number); if(!union(u, v)) { ans = i; break; } } console.log(ans);