package main

import (
	"fmt"
)

func main() {
	var x [4][4]int
	var x2 [4][4]int
	z := 0
	z2 := 1
	for i := 0; i<4; i++ {
		for j := 0; j<4; j++ {
			fmt.Scan(&z)
			x[i][j]=z
			x2[i][j]=z2
			z2++
		}
	}
	x2[3][3]=0
	//fmt.Println(x2)
	a := [4]int{0, 1, 0, -1}
	b := [4]int{1, 0, -1, 0}
	for q := 0; q<16; q++ {
		for i := 0; i<4; i++ {
			for j := 0; j<4; j++ {
				if x[i][j]==0 {
					for k := 0; k<4; k++ {
						if i+a[k]<0||i+a[k]>3||j+b[k]<0||j+b[k]>3{
							continue
						}
						if x2[i][j]==x[i+a[k]][j+b[k]] {
							x[i+a[k]][j+b[k]], x[i][j] = x[i][j], x[i+a[k]][j+b[k]]
						}
					}
				}
			}
		}
	}
	f := 0
	for i := 0; i<4; i++ {
		for j := 0; j<4; j++ {
			if x[i][j]!=x2[i][j] {
				f=1
			}
		}
	}
	if f==0 {
		fmt.Println("Yes")
	}else {
		fmt.Println("No")
	}

}