import qualified Data.Vector.Unboxed as VU
import qualified Data.ByteString.Char8 as BS
import Data.Char (isSpace)

main = do
  n <- readLn :: IO Int
  as <- VU.unfoldrN n (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine :: IO (VU.Vector Int)
  let asl = VU.length as
  let tsl = VU.length $ VU.filter (==2) as
  let fmsl = VU.length $ VU.filter ((==0) . flip mod 4) as 
  putStrLn $ if solve asl fmsl tsl then "Yes" else "No"

solve :: Int -> Int -> Int -> Bool
solve asl fmsl tsl
  | even tsl = fmsl >= (asl-tsl) `div` 2
  | otherwise = fmsl >= (asl-tsl+1) `div` 2