import java.util.Scanner;

class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		boolean isStrong = true;

		if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		}

		if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		}




	}
} import java.util.Scanner; Scanner java.util class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		boolean isStrong = true;

		if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		}

		if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		}




	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		boolean isStrong = true;

		if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		}

		if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		}




	} main {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		boolean isStrong = true;

		if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		}

		if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		}




	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String S = sc.next(); S sc.next() sc.next sc boolean isStrong = true; isStrong true if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		} S.length() % 4 == 1 S.length() % 4 S.length() S.length S 4 1 {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		} int l = (S.length()-1 )/ 2; l (S.length()-1 )/ 2 (S.length()-1 ) S.length() S.length S 1 2 for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} int i = 0; int i = 0; i 0 i < l/2 i l/2 l 2 i++ i++ i {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false; S.charAt(i) != S.charAt(l-i-1) S.charAt(i) S.charAt S i S.charAt(l-i-1) S.charAt S l-i-1 l-i-1 l i 1 isStrong = false isStrong false if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false; !S.substring(0, l).equals( S.substring(l+1)) S.substring(0, l).equals( S.substring(l+1)) S.substring(0, l).equals S.substring(0, l) S.substring S 0 l S.substring(l+1) S.substring S l+1 l 1 isStrong = false isStrong false {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		} int l = (S.length()-1 )/ 2; l (S.length()-1 )/ 2 (S.length()-1 ) S.length() S.length S 1 2 for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} int i = 0; int i = 0; i 0 i < (l-1)/2 i (l-1)/2 (l-1) l 1 2 i++ i++ i {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			} if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false; S.charAt(i) != S.charAt(l-i-1) S.charAt(i) S.charAt S i S.charAt(l-i-1) S.charAt S l-i-1 l-i-1 l i 1 isStrong = false isStrong false if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false; !S.substring(0, l).equals( S.substring(l+1)) S.substring(0, l).equals( S.substring(l+1)) S.substring(0, l).equals S.substring(0, l) S.substring S 0 l S.substring(l+1) S.substring S l+1 l 1 isStrong = false isStrong false if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		} isStrong {
			System.out.println("Yes");
		} System.out.println("Yes") System.out.println System.out System System.out "Yes" {
			System.out.println("No");
		} System.out.println("No") System.out.println System.out System System.out "No" String[] args args
import java.util.Scanner;

class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String S = sc.next();
		boolean isStrong = true;

		if(S.length() % 4 == 1) {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < l/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
		}else {
			int l = (S.length()-1 )/ 2;
			for(int i = 0; i < (l-1)/2 ; i++) {
				if(S.charAt(i) != S.charAt(l-i-1)) isStrong = false;
			}
			if(!S.substring(0, l).equals( S.substring(l+1))) isStrong = false;
			
		}

		if(isStrong) {
			System.out.println("Yes");
		}
		else {
			System.out.println("No");
		}




	}
}
