import sys import math def debug(x, table): for name, val in table.items(): if x is val: print('DEBUG: {} -> {}'.format(name, val), file=sys.stderr) return None n, m = map(int, sys.stdin.readline().split()) edges = {i:set() for i in range(n)} buy = ['0'] * n processed = list(range(0, n)) for i in range(m): a, b = map(int, sys.stdin.readline().split()) edges[a].add(b) edges[b].add(a) # debug(edges, locals()) max_v = n - 1 while max_v >= 0: for node in sorted(edges[max_v], reverse=True): buy[node] = '1' if max_v - 1 == node: max_v = node - 1 else: max_v -= 1 # debug(buy, locals()) ans = ''.join([str(b) for b in reversed(buy)]) ans = ans.lstrip('0') print(ans)