from collections import defaultdict


N, M = map(int, input().split())
nodes = [tuple(map(int, input().split())) for _ in range(M)]

whites: set = set()
blacks: set = set()

g: dict = defaultdict(lambda: [])

cnt = 0
for i in range(M):
    u, v = min(*nodes[i]), max(*nodes[i])
    g[u].append(v)



    # count
    # = i< を満たす隣接していない かつ 色違い であるノード数
    # = i< を満たす色違いノード数 - i< を満たす隣接色違いノード数

    # i< を満たす色違いノード数
    # =

    # i< を満たす隣接色違いノード数
    # = i< を満たす隣接ノード数


print(g)

print(cnt)
