import Control.Applicative( (<$>))
import Data.List( sort, group)
main = do
    n_ <- readLn::IO Int
    as_ <- map read . words <$> getLine
    let
	trans v i = let
			(q,r) = i `quotRem` 2
		in
		    case (r,v) of
			(0,0) -> trans 1 q
			(0,1) -> 2
			(1,0) -> 0
			(1,1) -> 1
	
	transformed = (trans 0) <$> as_
	zero_one_two = length' <$> (group $ sort transformed)
	    where
		length' (h:rest) = (h,1+length rest)

	[zero,one,two] = case zero_one_two of
	    [(0,zero),(1,one),(2,two)]	-> [zero,one,two]
	    [(0,zero),(1,one)]		-> [zero,one,0]
	    [(0,zero),(2,two)]		-> [zero,0,two]
	    [(1,one),(2,two)]		-> [0,one,two]
	    [(0,zero)]			-> [zero,0,0]
	    [(1,one)]			-> [0,one,0]
	    [(2,two)]			-> [0,0,two]

    putStr $ if even one
	    then if (zero+two) `quot` 2 <= two
		    then "Yes"
		    else "No"
	    else if (zero+two+1) `quot` 2 <= two
		    then "Yes"
		    else "No"