solve xs
  | xs /= xs' = "No"
  | ys /= reverse ys = "No"
  | zs /= reverse zs = "No"
  | otherwise = "Yes"
    where
      l = length xs
      a = (l - 1) `div` 2
      b = (l + 3) `div` 2
      xs' = reverse xs
      ys = take a xs
      zs = drop (b-1) xs

main = do
  xs <- getLine
  putStrLn $ solve xs
