program B
    implicit none
    character(len=100)::S
    integer::i, N, N1, N2
    read(*,*) S
    N = len_trim(S)

    do i = 1, N/2
        if(S(i:i) .ne. S(N+1-i:N+1-i)) then
            write(*,*) "No"
            stop
        end if
    end do

    N1 = (N-1)/2

    do i = 1, N1
        if(S(i:i) .ne. S(N1-i+1:N1-i+1)) then
            write(*,*) "No"
            stop
        end if
    end do

    N2 = (N+3)/2

    do i = N2, N
        if(S(i:i) .ne. S(N-i+N2:N-i+N2)) then
            write(*,*) "No"
            stop
        end if
    end do

    write(*,*) "Yes"

    stop
end program B