program atcoder322B
  character(99) :: S
  read(5,*)S
  N = len_trim(S)
  J = 0
  do K=1,(N-1)/2
     if(S(K:K)<S(N+1-K:N+1-K) .or. S(K:K)>S(N+1-K:N+1-K)) J=1
  end do
  if((N-1)/4*2 == (N-1)/2 ) then
     do K=1,(N-1)/4
        if(S(K:K)<S((N-1)/2+1-K:(N-1)/2+1-K).or.S(K:K)>S((N-1)/2+1-K:(N-1)/2+1-K)) J=1
     end do
  else
     do K=1,(N-3)/4
        if(S(K:K)<S((N-1)/2+1-K:(N-1)/2+1-K).or.S(K:K)>S((N-1)/2+1-K:(N-1)/2+1-K)) J=1
     end do
  end if
  if(J==1) then
     write(6,*)'No'
  else
     write(6,*)'Yes'
  end if
end program atcoder322B