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

solve :: String -> Bool
solve s = and $ map (isPalindrome) [s, take ((l-1)`div`2) s, drop ((l+3)`div`2-1) s]
  where l = length s

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