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

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