import java.util.Scanner;

class Main {

	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		String S=sc.next();
		boolean f=true;
		for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		}
		for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		}
		System.out.println(f?"Yes":"No");
	}
} import java.util.Scanner; Scanner java.util class Main {

	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		String S=sc.next();
		boolean f=true;
		for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		}
		for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		}
		System.out.println(f?"Yes":"No");
	}
} Main static Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args) {
		String S=sc.next();
		boolean f=true;
		for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		}
		for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		}
		System.out.println(f?"Yes":"No");
	} main {
		String S=sc.next();
		boolean f=true;
		for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		}
		for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		}
		System.out.println(f?"Yes":"No");
	} String S=sc.next(); S sc.next() sc.next sc boolean f=true; f true for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				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.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		} {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		} if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			} S.charAt(i)!=S.charAt(S.length()-i-1) S.charAt(i) S.charAt S i S.charAt(S.length()-i-1) S.charAt S S.length()-i-1 S.length()-i-1 S.length() S.length S i 1 {
				f=false;
				break;
			} f=false f false break; for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				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.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		} {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		} if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			} S.charAt(i)!=S.charAt(S.length()/2-i-1) S.charAt(i) S.charAt S i S.charAt(S.length()/2-i-1) S.charAt S S.length()/2-i-1 S.length()/2-i-1 S.length()/2 S.length() S.length S 2 i 1 {
				f=false;
				break;
			} f=false f false break; System.out.println(f?"Yes":"No") System.out.println System.out System System.out f?"Yes":"No" f "Yes" "No" String[] args args
import java.util.Scanner;

class Main {

	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		String S=sc.next();
		boolean f=true;
		for(int i=0;i<S.length()/2;i++) {
			if(S.charAt(i)!=S.charAt(S.length()-i-1)) {
				f=false;
				break;
			}
		}
		for(int i=0;i<S.length()/4;i++) {
			if(S.charAt(i)!=S.charAt(S.length()/2-i-1)) {
				f=false;
				break;
			}
		}
		System.out.println(f?"Yes":"No");
	}
}