A = [list(map(int, input().split())) for _ in range(4)] zero_i = -1 correct_pos_set = set() for i in range(4): for j in range(4): if A[i][j] == 0: zero_i = 4 * i + j if A[i][j] == 4 * i + j + 1: correct_pos_set.add(4 * i + j) all_correct_set = set(list(range(15))) Directions = [1, -1, 4, -4] while correct_pos_set != all_correct_set: flag = False for di in Directions: ni = zero_i + di if 0 <= ni < 16: if A[ni // 4][ni % 4] == zero_i + 1: correct_pos_set.add(zero_i) zero_i = ni flag = True break if not flag: print("No") exit() print("Yes")