import java.util.*;

public class Main{

    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    }
	
	public static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	}
}



 import java.util.*; util.* java public class Main{

    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    }
	
	public static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	}
} Main public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    } main {
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.nextLine(); s sc.nextLine() sc.nextLine sc int n = s.length(); n s.length() s.length s String s1 = s.substring(0, (n-1)/2); s1 s.substring(0, (n-1)/2) s.substring s 0 (n-1)/2 (n-1) n 1 2 String s2 = s.substring((n+1)/2, n); s2 s.substring((n+1)/2, n) s.substring s (n+1)/2 (n+1) n 1 2 n if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		} isKai(s) && isKai(s1) && isKai(s2) isKai(s) && isKai(s1) && isKai(s2) isKai(s) isKai s isKai(s1) isKai s1 isKai(s2) isKai s2 {
			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 static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	} isKai {
		return s.equals(new StringBuilder(s).reverse().toString());
	} return s.equals(new StringBuilder(s).reverse().toString()); s.equals(new StringBuilder(s).reverse().toString()) s.equals s new StringBuilder(s).reverse().toString() new StringBuilder(s).reverse().toString new StringBuilder(s).reverse() new StringBuilder(s).reverse new StringBuilder(s) String s s public class Main{

    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    }
	
	public static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	}
} public class Main{

    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    }
	
	public static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	}
} Main
import java.util.*;

public class Main{

    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
		 String s = sc.nextLine();
		 int n = s.length();
		 String s1 = s.substring(0, (n-1)/2);
		 String s2 = s.substring((n+1)/2, n);
        if(isKai(s) && isKai(s1) && isKai(s2)){
			System.out.println("Yes");
		} else {
			System.out.println("No");
		}
    }
	
	public static boolean isKai(String s){
		return s.equals(new StringBuilder(s).reverse().toString());
	}
}




