Problem:
Score : 200 points

Problem Statement

A string S of an odd length is said to be a strong palindrome if and only if all of the following conditions are satisfied:

S is a palindrome.

Let N be the length of S. The string formed by the 1-st through ((N-1)/2)-th characters of S is a palindrome.

The string consisting of the (N+3)/2-st through N-th characters of S is a palindrome.

Determine whether S is a strong palindrome.

Constraints

S consists of lowercase English letters.

The length of S is an odd number between 3 and 99 (inclusive).

Input

Input is given from Standard Input in the following format:

S

Output

If S is a strong palindrome, print Yes;
otherwise, print No.

Sample Input 1

akasaka

Sample Output 1

Yes

S is akasaka.

The string formed by the 1-st through the 3-rd characters is aka.

The string formed by the 5-th through the 7-th characters is aka.
All of these are palindromes, so S is a strong palindrome.

Sample Input 2

level

Sample Output 2

No

Sample Input 3

atcoder

Sample Output 3

No

Solution in Fortran (gfortran v4.8.4) (judge verdict: Wrong Answer)

   Program ABC159B
   implicit none
   integer::n,m,l,i,j,k
   character(100)::s,t,u

      read(*,*) s
      n=len_trim(s)
      t=s(1:(n-1)/2)
      u=s((n+3)/2:n)
      m=len_trim(t)
      l=len_trim(u)

      A:do i=1,(n+1)/2
         if (s(i:i)/=s(n-i+1:n-i+1)) then
            print *,'No'
            exit A
         else
            B:do j=1,(m+1)/2
               if (t(j:j)/=t(m-j+1:m-j+1)) then
                  print *,'No'
                  exit A
               else
                  C:do k=1,(l+1)/2
                     if (u(k:k)/=u(l-k+1:l-k+1)) then
                        print *,'No'
                        exit A
                     else
                        print *,'Yes'
                        exit A
                     end if
                  end do C
               end if
            end do B
         end if
      end do A

      stop

   End program ABC159B