{-# OPTIONS_GHC -O2 #-}
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString.Char8 as BSC8
main :: IO ()
main = do
  s <- BSC8.getLine
  BSC8.putStrLn $ solve s
solve :: BSC8.ByteString -> BSC8.ByteString
solve bs = if a == b then "Yes" else "No"
  where
    a = BSC8.take m       bs
    b = BSC8.drop (m + 1) bs
    n = (BSC8.length s) `div` 2