import sys from sys import stdin from functools import lru_cache def main(): sys.setrecursionlimit(1 << 25) N = int(stdin.readline()) c = list(map(int, stdin.readline().split())) digits = [i+1 for i in range(9) for _ in range(c[i])] max_k = 46 for k in range(max_k, -1, -1): s = min(k, N) required = 1 << k max_num = (10 ** s) - 1 if required > max_num: continue even_digits = [d for d in digits if d % 2 == 0] if k >= 1 and len(even_digits) < 1: continue from collections import defaultdict counts = defaultdict(int) for d in digits: counts[d] += 1 used = [False] * len(digits) target = required def backtrack(pos, rem, remaining_counts): if pos == s: return rem == 0 for d in remaining_counts: if remaining_counts[d] == 0: continue new_rem = (rem * 10 + d) % target new_counts = remaining_counts.copy() new_counts[d] -= 1 if backtrack(pos + 1, new_rem, new_counts): return True return False initial_counts = defaultdict(int) for d in digits: initial_counts[d] += 1 success = False for d in initial_counts: if initial_counts[d] == 0: continue new_counts = initial_counts.copy() new_counts[d] -= 1 if backtrack(1, d % target, new_counts): success = True break if success: print(k) return print(0) if __name__ == '__main__': main()