def solve(n, x, a) : if n == 1 : s = '0' * x if a[0] <= x : s = s[:a[0]-1] + '1' + s[a[0]:] return s a.sort() prod = 1 for i in range(n) : prod *= a[i] + 1 if prod > x + 1 : return '0' * x if 1 in a : return '0' * (prod - 2) + '1' * (x - prod + 2) size = [(x + 1) // (3 ** (n - i)) for i in range(n + 1)] dp = [[False] * (size[bin(i).count("1")]) for i in range(1 << n)] for i in range(n) : dp[2 ** i][a[i]] = True for i in range(1 << n) : cur_sz = len(dp[i]) for j in range(n) : if i >> j & 1 : continue tmp = [False for i in range(len(dp[i | 1 << j]))] for k in range(cur_sz) : target = (k + 1) * (a[j] + 1) - 1 if dp[i][k] and target < len(tmp) : tmp[target] = True for k in range(len(tmp) - a[j]) : if tmp[k] : tmp[k + a[j]] = True for k in range(len(tmp)) : if tmp[k] : dp[i | 1 << j][k] = True res = '' for i in range(x) : res += '1' if dp[(1 << n) - 1][i + 1] else '0'; return res n, x = map(int, input().split()) a = list(map(int, input().split())) print(solve(n, x, a))