program string_palindrome

 implicit none
 character :: s*99
 integer :: n,hanbetu,i,j,k

 read*,s
 !print*,s
 n=len_trim(s)
 !print*,n
 hanbetu=0
 
 do i=1,n/2
  if(s(i:i) /= s(n-i+1:n-i+1)) then
   print*,'No'
   hanbetu=hanbetu+1
   go to 200
  end if
   do j=1,((n-1)/2)/2
    if(s(j:j) /= s((n-1)/2-j+1:(n-1)/2-j+1)) then
     print*,'No'
     hanbetu=hanbetu+1
     go to 200
    end if
     do k=(n+3)/2,n/2
      if(s(k:k) /= s(n-k+1:n-k+1)) then
       print*,'No'
       hanbetu=hanbetu+1
       go to 200
      end if
     end do
   end do
 end do

200 if(hanbetu==0) print*,'Yes'

end program string_palindrome
    