import Control.Applicative

-- 1行をStringとして読む
getStr :: IO String
getStr = getLine

-- 1行をIntとして読む
getInt :: IO Int
getInt = readLn

-- スペース区切りの1行を[String]として読む
getStrList :: IO [String]
getStrList = words <$> getLine

-- スペース区切りの1行を[Int]として読む
getIntList :: IO [Int]
getIntList = map read . words <$> getLine

yesNo :: bool -> String
yesNo True = "Yes"
yesNo False = "No"

solve :: String -> String
solve s = yesNo $ check s && check take div length s 2 s

check :: String -> bool
check s = s == reverse s

main :: IO ()
main = do
    s <- getStr
    print $ solve s