# coding: utf-8 import re from scipy import integrate from operator import itemgetter from collections import defaultdict as dd from collections import Counter from collections import deque from collections import namedtuple import numpy as np import fractions import itertools import math from copy import deepcopy as dcopy import heapq from math import cos, sin, radians def main(): global mapping N, M = map(int, input().split()) mapping = [[False]*N for n in range(N)] for m in range(M): a, b = map(int, input().split()) mapping[a][b] = True mapping[b][a] = True # print(mapping) count = 0 for c in itertools.combinations(range(N), 4): if check(c): print(c) count += 1 print(count) def check(p): stack = [(p[0], 1)] count = 0 while len(stack) != 0: now, num = stack.pop() for i in range(4): if connected(now, p[i]): if num + 1 == 4: count += 1 else: stack.append((p[i], num + 1)) if count == 1: return True else: return False def connected(x,y): if mapping[x][y] or mapping[y][x]: return True else: return False if __name__ == "__main__": # {{{ try: import test test.test() except: main() # }}}