program main
    implicit none
    character(100):: s
    integer(4):: ls
    integer(4):: i, j
    logical:: j1, j2, j3
    read*, s

    ls = len_trim(s)
    j1=.true.
    j2=.true.
    j3=.true.

    do i=1, (ls-1)/2
        j = ls+1-i
        if (s(i:i) /= s(j:j)) j1 = .false.
    end do

    do i=1, (ls-1)/2/2
        j = (ls-1)/2+1-i

        if(s(i:i) /= s(j:j)) j2 = .false.
    end do

    
    do i=(ls+3)/2, ((ls+3)/2+ls)/2
        j = ((ls+3)/2+ls)-i

        if(s(i:i) /= s(j:j)) j2 = .false.
    end do

    if (j1 .and. j2 .and. j3) then
        print*, 'Yes'
    else
        print*, 'No'
    end if
end program main