import sys from operator import itemgetter from collections import defaultdict, deque import heapq import bisect import math stdin=sys.stdin sys.setrecursionlimit(10 ** 8) ip=lambda: int(sp()) fp=lambda: float(sp()) lp=lambda:list(map(int,stdin.readline().split())) sp=lambda:stdin.readline().rstrip() Yp=lambda:print('Yes') Np=lambda:print('No') inf = 1 << 60 eps = 1e-9 sortkey1 = itemgetter(0) sortkey2 = lambda x: (x[0], x[1]) mod = 10 ** 9 + 7 ############################################################### N = ip() P = lp() x = 0 y = 0 for i in range(N): if P[i] > 50: x += 1 if P[i] < 50: y += 1 if x == 0: ans = 0 else: ans = pow(2, x + y - 1, mod) print(ans)