
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	} main {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String s=scan.next(); s scan.next() scan.next scan scan.close() scan.close scan char[] s_char =s.toCharArray(); s_char s.toCharArray() s.toCharArray s int check=0; check 0 for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} int i=0; int i=0; i 0 i<s.length()/2 i s.length()/2 s.length() s.length s 2 i++ i++ i {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			} s_char[i]!=s_char[s.length()-1-i] s_char[i] s_char i s_char[s.length()-1-i] s_char s.length()-1-i s.length()-1-i s.length() s.length s 1 i {
				check=1;
				break;
			} check=1 check 1 break; for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} int i=0; int i=0; i 0 i<s.length()/4 i s.length()/4 s.length() s.length s 4 i++ i++ i {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		} if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			} s_char[i]!=s_char[s.length()/2-1-i] s_char[i] s_char i s_char[s.length()/2-1-i] s_char s.length()/2-1-i s.length()/2-1-i s.length()/2 s.length() s.length s 2 1 i {
				check=1;
				break;
			} check=1 check 1 break; if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			} s_char[s.length()/2+1+i]!=s_char[s.length()-1-i] s_char[s.length()/2+1+i] s_char s.length()/2+1+i s.length()/2+1+i s.length()/2 s.length() s.length s 2 1 i s_char[s.length()-1-i] s_char s.length()-1-i s.length()-1-i s.length() s.length s 1 i {
				check=1;
				break;
			} check=1 check 1 break; System.out.println((check==1)? "No":"Yes") System.out.println System.out System System.out (check==1)? "No":"Yes" (check==1) check 1 "No" "Yes" String[] args args public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	}
} public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	}
} Main

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String s=scan.next();
		scan.close();
		char[] s_char =s.toCharArray();
		int check=0;
		//回文か調べる
		for(int i=0;i<s.length()/2;i++) {
			if(s_char[i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}

		for(int i=0;i<s.length()/4;i++) {
			if(s_char[i]!=s_char[s.length()/2-1-i]) {
				check=1;
				break;
			}
			if(s_char[s.length()/2+1+i]!=s_char[s.length()-1-i]) {
				check=1;
				break;
			}
		}
		System.out.println((check==1)? "No":"Yes");

	}
}
