import * as fs from "fs" const defaultdict = (defaultValue: number) => { const dict: Map = new Map() const get = (key: K): number => { return dict.has(key) ? dict.get(key) : defaultValue } const set = (key: K, value: number): void => { dict.set(key, value) } const add = (key: K, value: number): void => { dict.has(key) ? set(key, get(key) + value) : set(key, value) } const del = (key: K): boolean => { return dict.delete(key) } return { get, add, set, del } } const range = (start: number) => (stop: number) => { return Array.from(Array(stop - start), (_, k) => k + start) } const existsSameValue = (arr: T[]): boolean => { const g: Set = new Set(arr) return g.size !== arr.length } const main = (args: string): void => { const input = args.trim().split("\n"); const T = parseInt(input.shift()) for (let i = 0; i < T; i++) { const [N, M] = input.shift().split(" ").map(x => Number(x)) const G = defaultdict(0) for (let j = 0; j < M; j++) { const [u, v] = input.shift().split(" ").map(x => Number(x)) G.add(u, 1) G.add(v, 1) } const degree = range(1)(N + 1).map(x => G.get(x)) console.log(existsSameValue(degree) ? "Yes" : "No") } } main(fs.readFileSync('/dev/stdin', 'utf8'));