package main import . "fmt" import . "os" import bf "bufio" func main() { rd := bf.NewReader(Stdin) var n, m int Fscan(rd,&n,&m) g := make([][]int, n*2+1) for i := 0; i < m; i++ { var a, b int Fscan(rd,&a,&b) g[a] = append(g[a], b+n) g[b+n] = append(g[b+n], a) g[a+n] = append(g[a+n], b) g[b] = append(g[b], a+n) } visited := make([]int, 2*n+1) id := 0 for i := 1; i <= n; i++ { if visited[i] > 0 { if visited[i] != visited[i+n] { Println("No") return } continue } id++ visited[i] = id stk := []int{i} for len(stk) > 0 { l := len(stk) p := stk[l-1] stk = stk[:l-1] for _, e := range g[p] { if visited[e] > 0 { continue } visited[e] = id stk = append(stk, e) } } if visited[i] != visited[i+n] { Println("No") return } } Println("Yes") }