import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	}

} 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();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	}

} Main public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	} main {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String S  = scan.next(); S scan.next() scan.next scan int N = S.length(); N S.length() S.length S int f = 0; f 0 for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		} int i = 0; int i = 0; i 0 i < N/2 i N/2 N 2 i++ i++ i {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		} {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		} if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			} S.charAt(i) != S.charAt(N-1-i) S.charAt(i) S.charAt S i S.charAt(N-1-i) S.charAt S N-1-i N-1-i N 1 i {
				f++;
				break;
			} f++ f break; for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		} int i = 0; int i = 0; i 0 i < N/4 i N/4 N 4 i++ i++ i {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		} {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		} if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			} S.charAt(i) != S.charAt((N-3)/2 - i) S.charAt(i) S.charAt S i S.charAt((N-3)/2 - i) S.charAt S (N-3)/2 - i (N-3)/2 (N-3) N 3 2 i {
				f++;
				break;
			} f++ f break; if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		} f == 0 f 0 {
			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 public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	}

} public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner scan = new Scanner(System.in);

		String S  = scan.next();
		int N = S.length();
		int f = 0;

		for (int i = 0; i < N/2; i++) {
			if (S.charAt(i) != S.charAt(N-1-i)) {
				f++;
				break;
			}
		}

		for (int i = 0; i < N/4; i++) {
			if (S.charAt(i) != S.charAt((N-3)/2 - i)) {
				f++;
				break;
			}
		}

		if (f == 0) {
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}

	}

}