import sys from collections import deque inputs = sys.stdin.readline class dsu(): """Union-Find syakayamiさん作、PythonバージョンのACLよりコピペしたものです。 使わせていただきありがとうございます! https://github.com/shakayami/ACL-for-python/blob/master/dsu.py ・使い方(個人的まとめ): uf=dsu(N): 初期化(Nは頂点の数) uf.merge(a,b): 頂点aがある連結成分と頂点bがある連結成分を合体します。 uf.same(a,b): 頂点a,bが同じ連結成分ならTrue, そうでないならFalseを返します。 uf.leader(a): 頂点aの連結成分の代表元を返します。 uf.size(a): 頂点aの連結成分にある超点数を返します(頂点a自身を含みます)。 uf.groups(): グラフの連結成分の情報を答えます。 ・使い方URL https://github.com/shakayami/ACL-for-python/wiki/dsu """ n = 1 parent_or_size = [-1 for i in range(n)] def __init__(self, N): self.n = N self.parent_or_size = [-1 for i in range(N)] def merge(self, a, b): assert 0 <= a < self.n, "0<=a 0: result2.append(result[i]) return result2 def main(): N, M = map(int, inputs().split()) uf = dsu(N * 2) for _ in range(M): a, b = map(int, inputs().split()) a, b = a - 1, b - 1 a2, b2 = a + N, b + N uf.merge(a, b2) uf.merge(b, a2) for i in range(N): if not uf.same(i, i + N): print('No') return print('Yes') if __name__ == "__main__": main()