## https://yukicoder.me/problems/no/3373 def equal(A1, A2): for i in range(8): if A1[i] != A2[i]: return False return True def main(): A = [] for _ in range(8): A.append(input()) A_input = [[int(s) for s in A[i]] for i in range(7)] A_output = [int(s) for s in A[7]] A_input_matrix = [] for i in range(7): array = A_input[i] if i != 0: array = [-s for s in array] array_list = [] for count in range(8): vector = [0] * 8 for i in range(8): vector[i] = array[(i + count) % 8] array_list.append(vector) A_input_matrix.append(array_list) def dfs(A_input_matrix, A_output, vector, index): if index == 7: return equal(vector, A_output) for count in range(8): a1 = A_input_matrix[index][count] for j in range(8): vector[j] += a1[j] if dfs(A_input_matrix,A_output, vector, index + 1): return True for j in range(8): vector[j] -= a1[j] return False vector = [0] * 8 result = dfs(A_input_matrix, A_output, vector, 0) if result: print("Yes") else: print("No") if __name__ == "__main__": main()