mp = [map(int, raw_input().split()) for _ in range(4)] p = 0 q = 0 for y in range(4): for x in range(4): if mp[y][x] == 0: p = y q = x while p != 3 or q != 3: n = p*4 + q + 1 if p > 0 and mp[p-1][q] == n: mp[p][q] = n mp[p-1][q] = 0 p = p-1 elif p < 3 and mp[p+1][q] == n: mp[p][q] = n mp[p+1][q] = 0 p = p+1 elif q > 0 and mp[p][q-1] == n: mp[p][q] = n mp[p][q-1] = 0 q = q-1 elif q < 3 and mp[p][q+1] == n: mp[p][q] = n mp[p][q+1] = 0 q = q+1 else: break if mp == [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,0]]: print 'Yes' else: print 'No'