#!/usr/bin/env python3
# @EXPECTED_RESULTS@: ACCEPTED, RUN_TIME_ERROR

(n, m), d, r, e = map(int, input().split()), {0: 0}, {0: 0}, [set() for _ in range(10 ** 6)]
for a, b in (map(int, input().split()) for _ in range(m)): (e[a - 1].add(b - 1), e[b - 1].add(a - 1))
if not all(2 ** len(e[i]) == n for i in range(n)): exit(print("no"))
for i in range(1, n):
    d[i] = next((v for v in e[d[i & (i - 1)]] & e[d[i & (2 ** (i.bit_length() - 1) - 1)]] if v not in r), 0)
    r[d[i]] = i
print(("no", "yes")[all((r.get(u, -1) ^ r.get(v, -1)).bit_count() == 1 for u in r for v in e[u])])  # bit_count is Py310
