program main

  implicit none
  character(99) :: s
  integer :: n,nn ,i

  
  read(*,*) s
  n = len_trim( s )
  
  nn = 0
  do i = 1, n/2
    if( s(i:i) == s(n-i+1:n-i+1)) then
    else
      nn = nn + 1
      exit
    end if
  end do
  do i = 1, (n-1)/2/2
    if( s(i:i) == s((n-1)/2-i+1:(n-1)/2-i+1)) then
    else
      nn = nn + 1
      exit
    end if
  end do
  do i = (n+3)/2, (n-(n+3)/2)/2
    if( s(i:i) == s(n-i+1:n-i+1)) then
    else
      nn = nn + 1
      exit
    end if
  end do
  
  if( nn == 0 ) then 
    print*, "Yes" 
  else
    print*, "No" 
  end if

end program main
