program bm
    implicit none
    character(99)::S
    logical::CHECK=.TRUE.
    integer::L
    integer::i
    read*,S
    L=len_trim(S)
    do i=1,L/2
        if(S(i:i)/=S(L-i+1:L-i+1))Check=.false.
    end do
    do i=1,(L/2)/2
        if(S(i:i)/=S(L/2-i+1:L/2-i+1))check=.false.
    end do
    print"(A)",trim(merge("Yes","No ",check))
end program bm