import qualified Data.ByteString.Char8 as B
import Data.Maybe (fromJust)
 
countMod0Num :: Int -> [Int] -> Int
countMod0Num n = length . filter ((==) 0) . map (flip mod n)

canSolveN :: Int -> Int -> Int -> Bool
canSolveN num4 num2 numOther
    | numOther == 0 = True
    | numOther <= num4 = True
    | (numOther + num2) <= (num4 + 1) = True
    | numOther <= (num4 + 1) && (num2 `mod` 2) == 0 = True
    | otherwise = False
    where
        num4Remain = num4 - numOther

canSolve :: [Int] -> Bool
canSolve arr = canSolveN num4 num2 numOther
    where
        num4 = countMod0Num 4 arr
        num2 = (countMod0Num 2 arr) - num4
        numOther = (length arr) - num2 - num4

toYesNo :: Bool -> String
toYesNo True = "Yes"
toYesNo False = "No"

solve :: [Int] -> String
solve = toYesNo . canSolve

main :: IO()
main = do
    n <- B.getLine
    a <- map (fst . fromJust . B.readInt) . B.words <$> B.getLine
    putStrLn $ solve a 