{-# OPTIONS_GHC -O2 #-}
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString.Char8 as BSC8
import qualified Data.Maybe            as Maybe

main :: IO ()
main = do
  -- s :: BSC8.ByteString
  s <- BSC8.getLine
  BSC8.putStrLn $ solve s (BSC8.length s)

solve :: BSC8.ByteString -> Int -> BSC8.ByteString
solve bs n = if a == b then "Yes" else "No"
  where
    a = BSC8.take m       bs
    b = BSC8.drop (m + 1) bs
    m = n `div` 2