package main import ( "fmt" ) func main() { var x [4][4]int var x2 [4][4]int z := 0 z2 := 1 var si, sj int for i := 0; i < 4; i++ { for j := 0; j < 4; j++ { fmt.Scan(&z) x[i][j] = z x2[i][j] = z2 z2++ if z == 0 { si = i sj = j } } } 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 k := 0; k < 4; k++ { if si+a[k] < 0 || si+a[k] > 3 || sj+b[k] < 0 || sj+b[k] > 3 { continue } if x2[si][sj] == x[si+a[k]][sj+b[k]] { x[si+a[k]][sj+b[k]], x[si][sj] = x[si][sj], x[si+a[k]][sj+b[k]] si = si+a[k] sj = sj+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") } }