{-# LANGUAGE Strict #-}

main :: IO ()
main = do
  s <- getLine
  putStrLn $ if solve s then "Yes" else "No"

solve :: String -> Bool
solve xs = isPalindrome xs && isPalindrome ys && isPalindrome zs
  where ys = take (n `div` 2) xs
        zs = drop (n `div` 2 + 1) xs
        n = length xs

isPalindrome :: String -> Bool
isPalindrome xs = xs == reverse xs
