def generate_V(n): if n == 0: return [frozenset()] prev = generate_V(n - 1) current = [] from itertools import combinations prev_list = list(prev) # Generate all possible subsets of the previous V_{n-1} for bits in range(1 << len(prev_list)): subset = [] for i in range(len(prev_list)): if (bits >> i) & 1: subset.append(prev_list[i]) current.append(frozenset(subset)) # Remove duplicates by converting to a set first unique = [] seen = set() for s in current: if s not in seen: seen.add(s) unique.append(s) return unique def main(): import sys input = sys.stdin.read().split() N = int(input[0]) A = list(map(int, input[1:7])) A0, A1, A2, A3, A4, A5 = A Vn = generate_V(N) for m0 in Vn: for m1 in Vn: for m2 in Vn: # Determine which variables to check based on A0-A5 mA0 = [m0, m1, m2][A0] mA1_set = [m0, m1, m2][A1] mA2 = [m0, m1, m2][A2] mA3_val = [m0, m1, m2][A3] mA4_val = [m0, m1, m2][A4] mA5_val = [m0, m1, m2][A5] # Check condition 1: mA0 subset of mA1 cond1 = True for x in Vn: if x in mA0 and x not in mA1_set: cond1 = False break if not cond1: continue # Check condition2: mA1 in mA2 if mA1_set not in mA2: continue # Check condition3: A3's variable in mA2 if mA3_val not in mA2: continue # Check condition4: A4's variable in mA2 if mA4_val not in mA2: continue # Check condition5: A5's variable in mA0 if mA5_val not in mA0: continue print("YES") return print("NO") if __name__ == "__main__": main()