S = input()

N = len(S)



def is_palindrome(s):

  return s == s[::-1]



if is_palindrome(S) \

and is_palindrome(S[:int((N-1)/2)]) \

and is_palindrome(S[int((N+3)/2-1):]):

  print('Yes')

else:

  print('No')

S = input()

N = len(S)



def is_palindrome(s):

  return s == s[::-1]



if is_palindrome(S) \

and is_palindrome(S[:int((N-1)/2)]) \

and S[int((N+3)/2-1):] == S[:int((N-1)/2)]:

  print('Yes')

else:

  print('No')

S = input()
N = len(S)


def is_palindrome(s):
    return s == s[::-1]


if (
    is_palindrome(S)
    and is_palindrome(S[: int((N - 1) / 2)])
    and is_palindrome(S[int((N + 3) / 2 - 1) :])
):
    print("Yes")
else:
    print("No")

S = input()
N = len(S)


def is_palindrome(s):
    return s == s[::-1]


if (
    is_palindrome(S)
    and is_palindrome(S[: int((N - 1) / 2)])
    and S[int((N + 3) / 2 - 1) :] == S[: int((N - 1) / 2)]
):
    print("Yes")
else:
    print("No")

-    and is_palindrome(S[int((N + 3) / 2 - 1) :]) +    and S[int((N + 3) / 2 - 1) :] == S[: int((N - 1) / 2)]