from collections import deque from collections import defaultdict import copy def solve(): n, m = map(int, input().split()) node_pair = [] for _ in range(m): a, b = map(int, input().split()) node_pair.append([a, b]) node_dict = defaultdict(list) for pair in node_pair: node_dict[pair[0]].append(pair[1]) node_dict[pair[1]].append(pair[0]) squares = set() for i in range(n): pairs = deque() pairs.append([i]) while len(pairs) > 0: pair = pairs.popleft() connect_nodes = node_dict[pair[-1]] for node in connect_nodes: if node not in pair: tpair = copy.deepcopy(pair) tpair.append(node) if len(tpair) == 4: tpair.sort() squares.add(tuple(tpair)) else: pairs.append(tpair) ans = 0 for square in squares: for idx in range(4): connection_count = 0 for node in node_dict[square[idx]]: if node in square: connection_count += 1 if connection_count != 2: break else: ans += 1 print(ans) if __name__=="__main__": solve()