from copy import deepcopy N,M = list(map(int, input().split(' '))) G = {} for m in range(M): a,b = list(map(int, input().split(' '))) if a not in G: G[a] = [b] else: G[a].append(b) if b not in G: G[b] = [a] else: G[b].append(a) def remove_edge_on(graph,node): new_graph = deepcopy(graph) for adj in new_graph[node]: new_graph[adj].remove(node) removed_edge = len(new_graph[node]) new_graph[node] = [] return new_graph,removed_edge def solve(graph, i, edge, cost): if edge != M and i == N: return float('inf') if edge == M: return cost new_graph,removed_edge = remove_edge_on(graph, i) return min(solve(graph, i+1, edge, cost), solve(new_graph, i+1, edge+removed_edge, cost+2**i)) print(bin(solve(G,0,0,0))[2:])