let is_palindrome s =
  let n = String.length s in
  Array.fold_left ( && ) true @@
  Array.init (n / 2) @@ fun i -> s.[i] = s.[n - i - 1]

let () =
  let s = read_line () in
  let n = String.length s in
  print_endline @@
  if
    is_palindrome s &&
    is_palindrome (String.sub s 0 ((n - 1) / 2)) &&
    is_palindrome (String.sub s ((n + 1) / 2) ((n - 1) / 2))
  then "Yes"
  else "No"
