peterverebics/CodeNet_Python_118 huggingface dataset:
S=input()
S_len=len(S)
flag_1=True
flag_2=True
flag_3=True

for i in range(S_len):
  if S[i]!=S[S_len-1-i]:
    flag_1=False
for i in range(int((S_len-1)/2)):
  if S[i]!=S[int((S_len-1)/2)-1-i]:
    flag_2=False
for i in range(int((S_len-1)/2)):
  if S[int((S_len+3)/2)-1+i]!=S[S_len-1-i]:
    flag_3=False
flag=flag_1*flag_2*flag_3
if flag==True:
  print('Yes')
else:
  print('No')
def main():
    s = list(input())

    n = len(s)
    left = s[:(n-1)//2]
    right = s[(n+1)//2:]

    if left == right:
        print('Yes')
    else:
        print('No')


if __name__ == "__main__":
    main()
S = input()
l = len(S)
flag = 0
half = l // 2

for i in range(l):
  if S[i] != S[l - 1 - i]:
    flag = 1
    
for i in range(half // 2):
  if S[i] != S[half - 1 - i]:
    flag = 1
    
for i in range(half // 2):
  if S[half + 1 + i] != S[l - 1 - i]:
    flag = 1
    
if flag == 0:
  print("Yes")
else:
  print("No")
s = input()
n = len(s)//2
if s[:n] == s[:n][::-1] and s[n+1:] == s[n+1:][::-1] and s == s[::-1]:
    print('Yes')
else:
    print('No')
s=input()
n=len(s)
a=s[:(n-1)//2]
b=s[(n+1)//2:]
if a==a[::-1] and b==b[::-1] and s==s[::-1]:
  print("Yes")
else:
  print("No")
S = input()
N = len(S)

left = S[:(N-1)//2]
right = S[(N+3)//2-1:]
if (left == left[::-1]) and (right == right[::-1]) and (left == right[::-1]):
  print("Yes")
else:
  print("No")
import copy
s = input()

mae = s[:len(s) // 2]
ushiro = s[len(s) // 2 + 1:]
ushiro2 = copy.deepcopy(ushiro[::-1])

if mae == ushiro:
    print('Yes')
else:
    print("No")
s=input()
n=len(s)
m=(n-1)//2
t=s[:m]

for i in range(m):
  #print(s[i],s[-i-1])
  if s[i]!=s[-i-1]:
    print('No')
    exit()
if m%2==1: l=(m-1)//2
else: l=m//2
for i in range(l):
  #print(t[i],t[-i-1])
  if t[i]!=t[-i-1]:
    print('No')
    exit()
print('Yes')
#create date: 2020-03-22 21:03

import sys
stdin = sys.stdin

def ns(): return stdin.readline().rstrip()
def ni(): return int(ns())
def na(): return list(map(int, stdin.readline().split()))

def main():
    s = ns()
    n = len(s)
    s1 = s[:(n-1)//2]
    s2 = s[(n+3)//2-1:]
    ans = "Yes"
    if s == s[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
        print("Yes")
    else:
        print("No")

if __name__ == "__main__":
    main()
s = input()
t = s[:len(s)//2]
u = s[len(s)//2+1:]
if t == u and  t == u[::-1]:
    print('Yes')
else:
    print('No')
s = input()

ls = s[:int((len(s)-1)/2)]
rs = s[int((len(s)-1)/2)+1:]

if ls == rs:
    print('Yes')
else:
    print('No')
S = input()
N = len(S)

def is_pal(X):
    ret = True
    for i in range(len(X)//2+1):
        if X[i] != X[-i-1]:
            ret = False
    return ret


if is_pal(S) and is_pal(S[:N//2]) and is_pal(S[N//2+1:]):
    print("Yes")
else:
    print("No")
print("Yes" if (lambda x: x==''.join(list(reversed(x))) and x[0:len(x)//2]==''.join(list(reversed(x[0:len(x)//2]))))(input()) else "No")
s = str(input())
n = int(len(s))
out = 'Yes' if s == s[::-1] and s[:int((n - 1)/2)] == s[:int((n - 1)/2)][::-1] \
               and s[int((n + 3)/2) - 1:n] == s[int((n + 3)/2) - 1:n][::-1] else 'No'
print(out)
x = input()
list = list(x)
list_num = len(x)

former_num = (list_num - 1) // 2
later_num =  (list_num + 3) // 2

if list[:former_num] == list[later_num-1:list_num]:
    print('Yes')
else:
    print('No')
s = input()
if s[len(s) // 2 + 1:] == s[:len(s) // 2]:
    print('Yes')
else:
    print('No')
s = str( input() )

n = len( s )
s_l = s[:(n-1)//2]
s_r = s[(n+1)//2:]

if s == s[::-1] and s_l == s_l[::-1] and s_r == s_r[::-1]:
    print("Yes")
else:
    print("No")
s = input()
r = s[::-1]

if s != r:
  print('No')
  exit()
n = len(s)
s1 = s[:int((n-1)/2)]
r1 = s1[::-1]
if s1 != r1:
  print('No')
  exit()
s2 = s[int((n+3)/2)-1:]
r2 = s2[::-1]
if s2 != r2:
  print('No')
  exit()
print('Yes')
import sys
input = sys.stdin.readline

s = input().rstrip()
n = len(s)

s1 = s[:(n - 1) // 2]
s2 = s[(n + 3) // 2 - 1:]

if s == s[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
    print("Yes")
else:
    print("No")
s = str(input())
n = len(s)

# 回文の判定
for i in range((n-1)//2):
  # print(i)
  if s[i] != s[n-i-1]:
    print('No')
    exit(0)
    
# 前半回文の判定
for j in range((n-1)//4):
  # print(j)
  if s[j] != s[(n-1)//2 -j-1]:
    print('No')
    exit(0)
    
# 回文の判定
for k in range((n+3)//2, n):
  # print(k)
  if s[k] != s[n-k-1]:
    print('No')
    exit(0)
    
print('Yes')
s = input()
n = len(s)
s_re =s[::-1]
s_first = s[:(n-1)//2]
s_first_re = s_first[::-1]
s_second = s[(n+3)//2-1:]
s_second_re = s_second[::-1]

print(['No','Yes'][s == s_re and s_first==s_first_re and s_second == s_second_re])
def isPalindrome(s: str):
    for i in range(len(s) // 2):
        if s[i] != s[len(s)-i-1]:
            return False
    return True


s = input()
n = len(s)
if isPalindrome(s) and isPalindrome(s[0:(n-1)//2]) and isPalindrome(s[(n+3)//2-1:n]):
    print('Yes')
else:
    print('No')
s = input()
n = len(s)
s1 = s[:int((n-1)/2)]
s2 = s[int((n+1)/2):]
def is_kaibun(ss):
    for i in range(int((len(ss)+1)/2)):
        if ss[i]!=ss[-(i+1)]:
            return False
    return True
if is_kaibun(s1) and is_kaibun(s2) and is_kaibun(s):
    print("Yes")
else:
    print("No")
# B - String Palindrome
S = input()
T = S[::-1]
c = len(S)//2
ans = 'No'
if S==T and S[:c]==T[c+1:] and S[c+1:]==T[:c]:
    ans = 'Yes'
print(ans)
S = input()
N = len(S)

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

if S == S[::-1]:
    if one == one[::-1]:
        if two == two[::-1]:
            print('Yes')
            exit()

print('No')
S = input()
N = len(S)
def strong(word):
    n = len(word)
    flag = True
    for i in range(n):
        if word[i] != word[-i-1]:
            flag = False
            break
        else:
            continue
    return flag
if strong(S) and strong(S[0:int((N-1)/2)]):
    print('Yes')
else:
    print('No')
S = input()

print('Yes' if S[:(len(S)-1)//2] == S[(len(S)+1)//2:] and S[:(len(S)-1)//2] == S[(len(S)-3)//2::-1] else 'No')
S = input()
N = len(S)
S1 = S[:(N-1)//2]
S2 = S[(N+3)//2-1:]
if S == S[::-1] and S1 == S1[::-1] and S2 == S2[::-1]:
    print("Yes")
else:
    print("No")
S = input()
N = len(S)
S_1 = []
S_2 = []

for i in range(int((N-1)/2)):
    S_1.append(S[i])

for j in range(int((N+3)/2-1), int(N)):
    S_2.append(S[j])

S_2.reverse

if S_1 == S_2 :
    print('Yes')
else:
    print('No')
S = input()

N = len(S)

# print(S[:int((N-1)/2)])
# print(S[int((N+2)/2):])

rev_S = S[::-1]
a = S[:int((N-1)/2)]
rev_a = a[::-1]
b = S[int((N+2)/2):]
rev_b = b[::-1]

if S==rev_S and a==rev_a and b==rev_b:
    print("Yes")
else:
    print("No")
S=input()
L=(len(S)-1)//2
ans='Yes'
if S[:L]!=S[-L:]:
    ans='No'
for n in range(L):
    m=L-1-n
    if S[n]!=S[m]:
        ans='No'
print(ans)
S = input()
N = len(S)

s1 = S[0:int((N-1)/2)]
s2 = S[int((N+3)/2-1):]

if S == S[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
    print('Yes')
else:
    print('No')
s = list(input())
n = len(s)
l = s[: (n - 1) // 2]
r = s[(n + 1) // 2 :]
if l == l[::-1] and r == r[::-1] and s == s[::-1]:
    print("Yes")
else:
    print("No")
s = input()
n = len(s)
front = (n-1) // 2
rear = (n+2) // 2
sf = s[:front]
sr = s[rear:]
srev = s[::-1]
sfrev = sf[::-1]
srrev = sr[::-1]
if sfrev == sf and srrev == sr and srev == s:
    print('Yes')
else:
    print('No')
S = input()

def Check1(S):
    for i in range(len(S) // 2):
        if S[i] != S[len(S) - 1 - i]:
            return False
    return True

def Check2(S):
    S2 = ""
    for i in range(0, (len(S) - 1) // 2):
        S2 = S2 + S[i]
    return Check1(S2)

def Check3(S):
    S3 = ""
    for i in range((len(S) + 3) // 2 - 1, len(S)):
        S3 = S3 + S[i]
    return Check1(S3)

if Check1(S) and Check2(S) and Check3(S):
    print("Yes")
else:
    print("No")
s = input()

s1 = s[:int((len(s)/2))]
s2 = s[int((len(s)+3)/2)-1:]



if s == s[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
    print('Yes')
else:
    print('No')
s = list(input())

n = len(s)
a = (n-1)//2
b = (n+3)//2

ichi = list(reversed(s))
ni = s[0:a]
san = s[b-1:n+1]

rni = list(reversed(ni))
rsan = list(reversed(san))

if s == ichi and ni == rni and san == rsan:
    print("Yes")
else:
    print("No")
# coding: utf-8
# Your code here!

N = input()
n = len(N)

N1 = N
N2 = N[:int((n-1)/2)]
N3 = N[int(((n+3)/2)-1):]

N1r = ''.join([N1[i] for i in range(len(N1)-1, -1, -1)])
N2r = ''.join([N2[i] for i in range(len(N2)-1, -1, -1)])
N3r = ''.join([N3[i] for i in range(len(N3)-1, -1, -1)])

if N1 == N1r and N2 == N2r and N3 == N3r : 
    print('Yes')
else : 
    print('No')
def is_palindrome(string):
  return True if string==string[::-1] else False
  
S = input()

N = len(S)
a = (N-1)//2
b = (N+3)//2 - 1

ans = 'No' 
if is_palindrome(S) and is_palindrome(S[:a]) and is_palindrome(S[b:]):
  ans = 'Yes' 

print(ans)
s = str(input())
n = len(s)
 
A = str(s[:(n-1)//2])
B = str(s[(n+3)//2-1:])
 
if s ==(s[::-1]) and A == (A[::-1]) and B == (B[::-1]):
    print("Yes")
else:
    print ("No")
s=list(input())

length1 = int((len(s)-1)/2-1)
length2 = int((len(s)+3)/2-1)

if s == list(reversed(s)) and s[:length1+1] == list(reversed(s[:length1+1])) and s[length2:] == list(reversed(s[length2:])):
    print('Yes')
else:
    print('No')
s = list(input())
n = len(s)

a = int((n-1)/2)
b = int((n+3)/2)

for i in range(a):
  if s[i] != s[n-1-i]:
    print("No")
    exit()
    
for i in range(a):
  if s[i] != s[a-1-i]:
    print("No")
    exit()
    
for i in range(a):
  if s[b+i-1] != s[n-1-i]:
    print("No")
    exit()
    
print("Yes")
#k = int(input())
#s = input()
#a, b = map(int, input().split())
#l = list(map(int, input().split()))


s = input()

n = len(s)
s1 = s[0:(n-1)//2]
s2 = s[(n+3)//2-1:n+1]

if s == s[::-1]:
    if s1 == s1[::-1]:
        if s2 == s2[::-1]:
            print("Yes")
            exit()

print("No")
s = input()
n = len(s)//2
if s[:n] == s[-n:]:
    print('Yes')
else:
    print('No')
S = input()

X = list(S)
N = len(S)
N2 = int((N - 1) / 2)
N3 = int(((N + 3) / 2) - 1)

X1 = X[0 : N2]
X2 = X[N3 : N]

X10 = list(reversed(X1))
X20 = list(reversed(X2))

if X1 == X10 and X2 == X20 and X1 == X2:
    print('Yes')
else:
    print('No')
a = input()
b = len(a)
c = (b-3)//2
if a == a[::-1] and a[0:c] == a[c:0:-1]:
	print('Yes')
else:
	print('No')
S=input()
N=len(S)

def kaibun_checker(s):
    rev_s = s[::-1]
    len_s = len(s)
    for i in range(len_s//2):
        if s[i]!=rev_s[i]:
            return False
    return True

if N==3:
    print('Yes' if S[0]==S[2] else 'No')
else:
    if kaibun_checker(S[:]) and kaibun_checker(S[(N+3)//2]) and kaibun_checker(S[(N+3)//2-1:]):
        print('Yes')
    else:
        print('No')
S = input()
N = len(S)
S1 = S[:(N-1)//2]
S2 = S[(N+1)//2:]

if S==S[::-1] and S1==S1[::-1] and S2==S2[::-1]:
  print("Yes")
else:
  print("No")
S=input()
Count=0
N=len(S)
new_S= S[::-1]
if S[0:(N-1)//2]==new_S[(N+3)//2-1:N]:
  Count=0
else:
  Count=1

if Count==0:
  if S[0:(N-1)//2]==S[(N+3)//2-1:N]:
    Count=0
  else:
    Count=1
if Count==0:
  print("Yes")
else:
  print("No")
s = input()
n = len(s)
s1 = s[:(n-1)//2]
s2 = s[(n+3)//2-1:]
print("Yes" if s == s[::-1] and s1 == s1[::-1] and s2 == s2[::-1] else "No")
from math import ceil

S = input()
N = len(S)
b = S[:ceil((N - 1) / 2)]
c = S[ceil((N + 3)/2)-1:]


if S == S[::-1] and b == b[::-1] and c == c[::-1]:
    print("Yes")
else:
    print("No")
S = input()

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

N = len(S)

if is_palindrome(S) and is_palindrome(S[:(N-1)//2]) and is_palindrome(S[(N+3)//2-1:N]):
    print("Yes")
else:
    print("No")
def isPalindrome(S):
    
    palindrome = True
    for i in range(len(S)//2):
        if S[i] != S[-1-i]:
            palindrome = False
    
    return palindrome
    
    

S = input()

allS = isPalindrome(S)
formerS = isPalindrome(S[:len(S)//2])
latterS = isPalindrome(S[len(S)//2+1:])

if allS and formerS and latterS:
    print("Yes")
else:
    print("No")
import sys
import os

MOD = 10 ** 9 + 7


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    S = list(sys.stdin.buffer.readline().decode().rstrip())
    M = S[0: (len(S) - 1) // 2]
    U = S[(len(S) + 2) // 2:]
    print('Yes' if S == S[::-1] and M == M[::-1] and U == U[::-1] else 'No')


if __name__ == '__main__':
    main()
s = str(input())
n = len(s)
s1 = s[:int((n-1)/2)]
if s != s[::-1] or s1 != s1[::-1]:
  print('No')
else:
  print('Yes')
# n,m = map(int, input().split())
s = input()

l = len(s)
f = int((l-1)/2)
b = int((l+3)/2) - 1

# print(f,b)

if s != s[::-1] or s[:f] != s[:f:-1] or s[b:] != s[b:][::-1]: 
  # print(s[::-1])
  print("No")
else: 
  print("Yes")

# if :
#   print(s[:f:-1])
#   print("No")

# if :
#   print(b,":",s[b:][::-1])
#   print("No")
s = input()

#全体として回文になっているか
if s != s[::-1]:
    print("No")
    exit()

mae = s[:len(s)//2]#前半部分
ushiro = s[(len(s)+1)//2:]#後半部分

#前部分が回文になっているか
if mae != mae[::-1]:
    print("No")
    exit()

#後ろ部分が回文になっているか
if ushiro != ushiro[::-1]:
    print("No")
    exit()

print("Yes")
def main():
    S = input()
    len_s = len(S)
    flag = False
    if S == S[::-1]:
        if S[0:len_s // 2] == S[len_s // 2 - 1::-1]:
            if S[len_s // 2 + 1:] == S[-1:len_s // 2:-1]:
                flag = True
    # print(S[0:len_s // 2], S[len_s // 2 - 1::-1])
    # print(S[len_s // 2 + 1:], S[-1:len_s // 2:-1])
    if flag:
        print('Yes')
    else:
        print('No')


if __name__ == '__main__':
    main()
s=input()
n=len(s)//2
s1=s[:n]
s2=s[-n:]
if s==s[::-1] and s1==s1[::-1] and s2==s2[::-1]:
  print('Yes')
else:
  print('No')
S = input()
N = len(S)
if list(reversed(S)) == list(S) and list(reversed(S[:(N-1)//2])) == list(S[:(N-1)//2]) and list(reversed(S[((N+3)//2)-1:])) == list(S[((N+3)//2)-1:]):
    print('Yes')
else:
    print('No')
s=input()
n=len(s)
for i in range(n):
  if not s[i]==s[n-i-1]:
    print('No')
    exit()
for i in range(n//2):
  if not s[i]==s[n//2-i-1]:
    print('No')
    exit()
for i in range(n//2+1,n):
  if not s[i]==s[n-i-1]:
    print('No')
    exit()
print('Yes')
S = input()

N = len(S)

S_2 = S[:(N-1)//2]
S_3 = S[(N+3)//2 - 1:N]

if S == S[::-1] and S_2 == S_2[::-1] and S_3 == S_3[::-1]:
    print('Yes')
else:
    print('No')
S = str(input())
N = len(S)
a = (N - 1) // 2
b = (N + 3) // 2
x = 0
for i in range(N):
  if S[i] != S[N - 1 - i]:
    x = 1

for i in range(a):
  if S[i] != S[a - 1 - i]:
    x = 1

for j in range(a):
  if S[j + b - 1] != S[N - 1 - j]:
    x = 1
    
if x == 0:
  print("Yes")
else:
  print("No")
s=raw_input()
n=len(s)
ans="Yes"
for i in range(n):
  if s[i]!=s[n-1-i]:
    ans="No"
    break
for i in range((n-1)/2):
  if s[i]!= s[(n-1)/2-1-i]:
    ans="No"
    break
print ans
S = input()

N = len(S)
S_rev = ''.join(list(reversed(S)))

S_cond1 = S[0:int((N-1)/2)]
S_cond1_rev = ''.join(list(reversed(S_cond1)))

S_cond2 = S[int((N+3)/2)-1:]
S_cond2_rev = ''.join(list(reversed(S_cond2)))

if(S == S_rev and S_cond1 == S_cond1_rev and S_cond2 == S_cond2_rev):
    print('Yes')
else:
    print('No')
s = input()
mae = s[:len(s) // 2]
ushiro = s[len(s) // 2 + 1:]
ushiro2 = ushiro[::-1]
if mae == ushiro:
    print('Yes')
else:
    print("No")
List=list(input())
N=len(List)
if 0 not in [int(List[i]==List[(N-1-i)]) for i in range(N)]\
and List[0:(N-3)//2]==List[(N+1)//2:N-1]:
    print("Yes")
else:
  print("No")
S = input()
N = len(S)

s1 = S[0:(N-1)//2]
s2 = S[(N+3)//2-1:]

if S == S[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
  print("Yes") 
else:
  print("No")
s = input()

n = len(s)

l = s[:int((n)/2)]
r = s[int((n)/2)+1:]


if l != r:
    print("No")
    exit()

lr = l[::-1]
rr = r[::-1]

if lr != l or rr != r:
    print("No")
    exit()

print("Yes")
S = str(input())

N = len(S)

flag = True

for i in range(N):
    if S[i] == S[N - 1 - i]:
        pass
    else:
        print ('No')
        exit()

for i in range(N//2):
    if S[i] == S[N // 2 - 1 - i]:
        pass
    else:
        print ('No')
        exit()

count = 0
for i in range((N + 3) // 2 - 1, N):
    if S[i] == S[N - 1 - count]:
        count += 1
    else:
        print ('No')
        exit()

print ('Yes')
S=input()
N=len(S)
print("Yes" if S==S[::-1] and S[:int((N-1)/2)]==S[:int((N-1)/2)][::-1] and S[int((N+3)/2)-1:]==S[int((N+3)/2)-1:][::-1] else "No")
s = input()
n = len(s)
x = s[0:(n-1)//2] 
y = s[(n+3)//2-1:n]
if x == x[::-1] and y == y[::-1] and s == s[::-1]:
    print("Yes")
else:
    print("No")
s = input()
n = len(s)
def judge(string):
    k = len(string)
    flag = True
    for i in range(k//2):
        if string[i] != string[-i-1]:
            flag = False
            break
    return flag
s1 = s[:(n-1)//2]
s2 = s[(n+3)//2-1:]
if judge(s) and judge(s1) and judge(s2):
    print("Yes")
else:
    print("No")
s = input()

s1 = s[:int((len(s))/2)]
s2 = s[int((len(s)+3)/2)-1:]

if s[::] == s[::-1] and s1 == s1[::-1] and s2 == s2[::-1]:
    print("Yes")
else:
	print("No")
# -*- coding: utf-8 -*-

S = input()

ans = 'Yes'
for i in range(len(S)//2):
  if S[i] != S[len(S)-1-i]:
    ans = 'No'

front = S[0:(len(S)-1)//2]
for i in range(len(front)//2):
  if front[i] != front[len(front)-1-i]:
    ans = 'No'

end = S[(len(S)+1)//2:]
for i in range(len(end)//2):
  if end[i] != front[len(end)-1-i]:
    ans = 'No'
print(ans)
s=input()
n=len(s)
ans='Yes'
for i in range((n-1)//2):
  if not(s[i]==s[(n-3)//2-i]==s[i+(n+1)//2]==s[n-i-1]):
    ans='No'
print(ans)
import sys
S = input()
N = len(S)
for i in range(N):
    if(S[i] != S[N-1-i]):
        print("No")
        sys.exit()
for i in range(int((N-1)/2)):
    if(S[i] != S[int((N-1)/2-1-i)]):
        print("No")
        sys.exit()
for i in range(int((N+1)/2-1),N):
    if(S[i] != S[N-1-i]):
        print("No")
        sys.exit()
print("Yes")
s = input()
n = len(s)

# if (n//2) % 2 == 0:
#     print("No")
#     exit()

t = 0
for i in range(n//2):
    if s[i] != s[-i-1]:
        print("No")
        exit()

for j in range((n//2) // 2):
    if s[j] != s[-j-(n//2)-2]:
        print("No")
        exit()

for j in range((n//2) // 2):
    if s[j+(n//2)+1] != s[-j-1]:
        print("No")
        exit()

print("Yes")
s = [_ for _ in input()]
n = len(s)

s0 = s[0:round((n-1)/2)]
s1 = s[round((n+3)/2-1):n]


def kaibun(ss):
    if ss[::-1] == ss:
        return True
    return False

if kaibun(s) and kaibun(s0) and kaibun(s1):
    print('Yes')
    exit(0)
print('No')
def is_palindrome(str):
  return True if str == str[::-1] else False

S1 = input()
N = len(S1)
S2 = S1[:(N - 1) // 2]
S3 = S1[(N + 3) // 2 - 1:]
is_stroing_palindrome = all([is_palindrome(S1), is_palindrome(S2), is_palindrome(S2)])

print('Yes') if is_stroing_palindrome else print('No')
s=input()
k= ''.join(list(reversed(s)))
l=""
if s!=k:
    print("No")
    exit()
n=int((len(s)-1)/2)
for i in range(n):
    l=l+s[i]
if l!= ''.join(list(reversed(l))):
    print("No")
    exit()
print("Yes")
s = input()
s1 = s[:int((len(s)-1) / 2)]
s1r = s1[::-1]
s2 = s[int((len(s)+1) / 2):]
s2r = s2[::-1]
if s1 == s1r and s2 == s2r:
    print('Yes')
else:
    print('No')
s = input()
n = len(s)
ans = "No"

sa = s[:(n-1)//2]
sb = s[((n+3)//2)-1:]

if sa == sa[::-1] and sb == sb[::-1]:
    ans = "Yes"

print(ans)
S = input()

N = len(S)
def isPalindrome(S, i, j):
    i = int(i)
    j = int(j)
    while S[i] == S[j]:
        i+=1
        j-=1
        if i == j or j == i - 1:
            return True
        elif i > j:
            return False

if isPalindrome(S, 0, N-1) and isPalindrome(S, 0, (N-1)/2-1) and isPalindrome(S, (N+3)/2-1, N-1):
    print('Yes')
else:
    print('No')
s = input('')
n = len(s)
s1 = s[0:(n-1)//2]
s2 = s[(n+3)//2-1:]

if (s1 == s1[::-1] and s2 == s2[::-1]):
	print("Yes")
else:
  	print("No")
import sys
S = input()
def is_palindrome(S):
  P = S[::-1]
  print(P)
  if S == P:
    return True
  return False
if is_palindrome(S):
  N = len(S)
  if is_palindrome(S[0:(N-1)//2]) and is_palindrome(S[(N+3)//2-1:N]):
    print('Yes')
    sys.exit(0)
print('No')
s = input()

def is_kaibun(st):
    return st[:len(st) // 2] == st[-(len(st) // 2):][::-1]

if is_kaibun(s) and is_kaibun(s[:len(s) // 2]) and is_kaibun(s[-(len(s) // 2):][::-1]):
    print('Yes')
else:
    print('No')
s=input()
def kai(s):
    if len(s)//2 == 0:
        if s[:int(len(s)/2-1)] == s[int(len(s)/2):]:
            return True
        else:
            return False

    else:
        if s[:int((len(s)-1)/2)] == s[int((len(s)+1)/2):]:
            return True
        else:
            return False

if kai(s) and kai(s[:int((len(s)-1)/2)]) and kai(s[int((len(s)+1)/2):]):
    print('Yes')
else:
    print('No')
s = [i for i in input()]
len_s = len(s)

def reverse(s):
  rev = [j for j in s[::-1]]
  return rev

if s == reverse(s):
  if reverse(s[:(len_s - 1)//2]) == s[:(len_s - 1)//2] and reverse(s[(len_s + 3)//2 - 1:]) == s[(len_s + 3)//2 - 1:]:
    print("Yes")
else:
  print("No")
S=input()
N=len(S)
r_S=S[::-1]
c1=int((N-1)/2)
c2=int((N+3)/2)
S1=S[:c1]
r_S1=S1[::-1]
S2=S[(c2-1):]
r_S2=S2[::-1]


#kaibun hantei
if S1==r_S1 and S1==r_S1 and S2==r_S2:
  print("Yes")
else:
  print("No")
s=input()
a=s[:len(s)//2]
b=s[(len(s)//2)+1:]
if a==reversed(a) and b==reversed(b):
  print('Yes')
else:
  print('No')
text_ = input()

if text_ != text_[::-1]:
    print('No')
elif text_[:((len(text_) - 1)//2)] != text_[:((len(text_) - 1)//2)][::-1]:
    print('No')
elif text_[:((len(text_) + 3) // 2)] != text_[:((len(text_) + 3) // 2)][::-1]:
    print('No')
else:
    print('Yes')
s = input()
n = len(s)
a, b = (n-1)//2, ((n+3)//2)+1
if s[0:a] == ''.join(reversed(s[0:a])) and s[b:] == ''.join(reversed(s[b:])):
	print("Yes")
else:
	print("No")
S = input()
N = len(S)

pre = S[0 : int((N-1)/2)]
print(pre)
bck = S[int((N+1)/2) : N]
print(bck)

if S == S[::-1] and pre == pre[::-1] and bck == bck[::-1]:
    print("Yes")
else:
    print("No")
import copy

S = input()
flag_fail = 0
N = len(S)

while N != 1:
  S_temp = copy.copy(S)
  N = len(S)
  K = N // 2
  if K > 2 and K % 2 == 0:
    flag_fail = 2
  else:
    for i in range(K):
      if S_temp[i] != S_temp[N - i - 1]:
        flag_fail = 3
        break
        
  if flag_fail != 0:
    print('No')
    break
  else:
    S = []
    S = S_temp[0:K]
if flag_fail == 0:
  print('Yes')
s = input()
n = len(s)
count = 0
ans = True
while count <= n and ans == True:
  for i in range(1,n+1):
    if s[i-1]!=s[-i]:
      ans = False
    
  for i in range(1,int((n-1)/2)+1):
    if s[i-1]!=s[-i]:
      ans = False
      
  count += 1
 
if ans:
  print('Yes')
else:
  print('No')
s = input()
l = len(s)
sl = s[:(l-1)//2]
sr = s[((l+3)//2 -1):]


def f(s):
    l = len(s)
    j = False
    for i in range(l//2):
        if s[i] == s[l-1-i]:
            j = True
        else :
            j = False

    return j

if f(s) and f(sl) and f(sr):
    print("Yes")
else :
    print("No")
def isBatch(s):
    for i in range(len(s)//2):
        if s[i] != s[-i-1]:
            return False
    return True

def main():
    s = input()
    condtion1 = (len(s) - 1) // 2
    condtion2 = (len(s) + 3) // 2
    flag = False
    for i, j in [(1, condtion1), (condtion2, len(s))]:
        if isBatch(s[i-1:j]):
            flag = True
        else:
            flag = False
    if flag:print("Yes")
    else: print("No")

if __name__ == "__main__":
    main()
import math

def check_kai(arr):
    len_a = len(arr)
    check_len = int(math.ceil(len_a/2))
    lef = arr[0:check_len]
    arr.reverse()
    rig = arr[0:check_len]
    if lef == rig:
        return True
    else:
        return False


input = list(input())
N = len(input)

if check_kai(input) and check_kai(input[0:(int((N-1)/2))]) and check_kai(input[int((N+3)/2):]):
    print('Yes')
else:
    print('No')
s = str(input())
mid = (len(s) + 1)//2

def palin(st):
    return st == st[::-1]

print('Yes' if palin(s[0:mid-1]) and palin(s[mid:]) else 'No')
s = list(input())
n = len(s)
if (
    s[: (n - 1) // 2] == s[: (n - 1) // 2][::-1]
    and s[(n + 1) // 2 :] == s[(n + 1) // 2 :][::-1]
):
    print("Yes")
else:
    print("No")
S = list(input())
N = len(S)
flag = True
for i in range((N+1)//2-1):
    if S[i] != S[-1-i]:
        flag = False
        break

for i in range((N+1)//4-1):
    if S[i] != S[(N+1)//2-2-i]:
        flag = False
        break

for i in range((N+3)//2, (N+5)//4-1):
    if S[i] != S[-2-i]:
        flag = False
        break

if flag == True:
    print('Yes')
elif flag == False:
    print('No')