import sys from itertools import combinations from fractions import Fraction sys.setrecursionlimit(1 << 25) def main(): N = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline().split())) memo = {} def compute_results(nums): key = tuple(sorted(nums)) if key in memo: return memo[key] if len(nums) == 1: res = {Fraction(nums[0])} memo[key] = res return res results = set() for i in range(1, len(nums)): for left in combinations(nums, i): left = list(left) right = [num for num in nums if num not in left] left_res = compute_results(left) right_res = compute_results(right) for l in left_res: for r in right_res: results.add(l + r) results.add(l - r) results.add(l * r) if r != 0: results.add(l / r) results.add(r - l) if l != 0: results.add(r / l) memo[key] = results return results first = A[0] full_mask = (1 << N) - 1 for mask in range(1, full_mask): if not (mask & 1): continue S = [] T = [] for i in range(N): if (mask >> i) & 1: S.append(A[i]) else: T.append(A[i]) if not S or not T: continue s_res = compute_results(tuple(S)) t_res = compute_results(tuple(T)) s_floats = set(float(x) for x in s_res) t_floats = set(float(x) for x in t_res) if s_floats & t_floats: print("YES") return print("NO") if __name__ == "__main__": main()