import Control.Applicative
import Data.List
import Data.Char

getInt :: IO Integer
getInt = (\a -> read a :: Integer) <$> getLine

getIntArray :: IO [Integer]
getIntArray = ((map (\a -> read a :: Integer)) . words) <$> getLine

getStrArray :: Integer -> IO [String]
getStrArray 0 = return [] :: IO [String]
getStrArray n = (:) <$> getLine <*> (getStrArray (n - 1))

countEach :: [Integer] -> (Integer, Integer, Integer)
countEach [] = (0, 0, 0)
countEach (x:xs)
    | mod x 4 == 0 = 
        let (a, b, c) = countEach xs
            in (a + 1, b, c)
    | mod x 2 == 0 =
        let (a, b, c) = countEach xs
            in (a, b + 1, c)
    | otherwise =
        let (a, b, c) = countEach xs
            in (a, b, c + 1)

canSort :: (Integer, Integer, Integer) -> String
canSort (a, b, c)
    | b == 0 && c <= a + 1 = "Yes"
    | b > 0 && c <= a = "Yes"
    | otherwise = "No"

main =do
    getLine
    putStrLn =<< (canSort . countEach) <$> getIntArray
