l = [] ans_l = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,0]] N_f = 0 for i in range(4): l.append(list(map(int, input().split()))) while l[3][3] != 0: ue = migi = shita = hidari = 0 f = 0 for i in range(4): for j in range (4): if l[i][j] == 0: try: ue = l[i-1][j] except: pass try: migi = l[i][j+1] except: pass try: shita = l[i+1][j] except: pass try: hidari = l[i][j-1] except: pass if ue == ans_l[i][j]: l[i][j], l[i-1][j] = l[i-1][j], l[i][j] f = 1 break elif migi == ans_l[i][j]: l[i][j], l[i][j+1] = l[i][j+1], l[i][j] f = 1 break elif shita == ans_l[i][j]: l[i][j], l[i+1][j] = l[i+1][j], l[i][j] f = 1 break elif hidari == ans_l[i][j]: l[i][j], l[i][j-1] = l[i][j-1], l[i][j] f = 1 break else: N_f = 1 break if N_f == 1 or f == 1: f = 0 break if N_f == 1: break if N_f == 1: print("No") else: if l == ans_l: print("Yes") else: print("No")