import java.util.Scanner;

public class Main {
	static Scanner s = new Scanner(System.in);

	public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	}
		
}
 import java.util.Scanner; Scanner java.util public class Main {
	static Scanner s = new Scanner(System.in);

	public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	}
		
} Main static Scanner s = new Scanner(System.in); s new Scanner(System.in) public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	} main {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	} String str = s.next(); str s.next() s.next s int flag = 0; flag 0 if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1; str.length() >= 3 && str.length() % 2 == 1 str.length() >= 3 str.length() str.length str 3 str.length() % 2 == 1 str.length() % 2 str.length() str.length str 2 1 flag = 1 flag 1 if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		} flag == 1 flag 1 {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		} for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			} int i = 0; int i = 0; i 0 i < str.length() / 2 i str.length() / 2 str.length() str.length str 2 i++ i++ i {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			} {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			} if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				} str.charAt(i) != str.charAt(str.length() - 1 - i) str.charAt(i) str.charAt str i str.charAt(str.length() - 1 - i) str.charAt str str.length() - 1 - i str.length() - 1 - i str.length() str.length str 1 i {
					flag = 0;
					break;
				} flag = 0 flag 0 break; if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			} flag == 1 flag 1 {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			} String ans = str.substring(0, (str.length() - 1) / 2); ans str.substring(0, (str.length() - 1) / 2) str.substring str 0 (str.length() - 1) / 2 (str.length() - 1) str.length() str.length str 1 2 for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} int i = 0; int i = 0; i 0 i < ans.length() / 2 i ans.length() / 2 ans.length() ans.length ans 2 i++ i++ i {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					} ans.charAt(i) != ans.charAt(ans.length() - 1 - i) ans.charAt(i) ans.charAt ans i ans.charAt(ans.length() - 1 - i) ans.charAt ans ans.length() - 1 - i ans.length() - 1 - i ans.length() ans.length ans 1 i {
						flag = 0;
						break;
					} flag = 0 flag 0 break; if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			} flag == 1 flag 1 {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			} String ans = str.substring(((str.length()+3)/2)-1,str.length()); ans str.substring(((str.length()+3)/2)-1,str.length()) str.substring str ((str.length()+3)/2)-1 ((str.length()+3)/2) (str.length()+3) str.length() str.length str 3 2 1 str.length() str.length str for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} int i = 0; int i = 0; i 0 i < ans.length() / 2 i ans.length() / 2 ans.length() ans.length ans 2 i++ i++ i {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				} if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					} ans.charAt(i) != ans.charAt(ans.length() - 1 - i) ans.charAt(i) ans.charAt ans i ans.charAt(ans.length() - 1 - i) ans.charAt ans ans.length() - 1 - i ans.length() - 1 - i ans.length() ans.length ans 1 i {
						flag = 0;
						break;
					} flag = 0 flag 0 break; if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No"); flag ==1 flag 1 {
			System.out.println("Yes");
			
		} System.out.println("Yes") System.out.println System.out System System.out "Yes" System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main {
	static Scanner s = new Scanner(System.in);

	public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	}
		
} public class Main {
	static Scanner s = new Scanner(System.in);

	public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	}
		
} Main
import java.util.Scanner;

public class Main {
	static Scanner s = new Scanner(System.in);

	public static void main(String[] args) {

		String str = s.next();
		int flag = 0;
		

		if (str.length() >= 3 && str.length() % 2 == 1)
			flag = 1;

		if (flag == 1) {
			for (int i = 0; i < str.length() / 2; i++) {
				if (str.charAt(i) != str.charAt(str.length() - 1 - i)) {
					flag = 0;
					break;
				}
			}
		

			if (flag == 1) {
				String ans = str.substring(0, (str.length() - 1) / 2);
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}
			
			if (flag == 1) {
				String ans = str.substring(((str.length()+3)/2)-1,str.length());
				for (int i = 0; i < ans.length() / 2; i++) {
					if (ans.charAt(i) != ans.charAt(ans.length() - 1 - i)) {
						flag = 0;
						break;
					}
				}
			}

		}
		if(flag ==1) {
			System.out.println("Yes");
			
		}
		else
			System.out.println("No");


	}
		
}

