palindrome :: String -> Bool
palindrome str = (str == reverse str)

main = do
  s <- getLine
  let n = length s
  if palindrome s
     && palindrome (take ((n-1) `div` 2) s)
     && palindrome (drop ((n+3) `div` 2 - 1) s)
  then putStrLn "Yes"
  else putStrLn "No"