import java.util.*;

public class Main{

	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	}

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

	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	}

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

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	} main {

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.next(); s sc.next() sc.next sc int N = s.length(); N s.length() s.length s String ans = "Yes"; ans "Yes" StringBuilder sb1 = new StringBuilder(s); sb1 new StringBuilder(s) if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        } !(s.equals(sb1.reverse().toString())) (s.equals(sb1.reverse().toString())) s.equals s sb1.reverse().toString() sb1.reverse().toString sb1.reverse() sb1.reverse sb1 {
          ans = "No";
        } ans = "No" ans "No" String str1 = s.substring(0,(N-1)/2); str1 s.substring(0,(N-1)/2) s.substring s 0 (N-1)/2 (N-1) N 1 2 StringBuilder sb2 = new StringBuilder(str1); sb2 new StringBuilder(str1) if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        } !(str1.equals(sb2.reverse().toString())) (str1.equals(sb2.reverse().toString())) str1.equals str1 sb2.reverse().toString() sb2.reverse().toString sb2.reverse() sb2.reverse sb2 {
          ans = "No";
        } ans = "No" ans "No" String str2 = s.substring((N+3)/2-1,N); str2 s.substring((N+3)/2-1,N) s.substring s (N+3)/2-1 (N+3)/2 (N+3) N 3 2 1 N StringBuilder sb3 = new StringBuilder(str2); sb3 new StringBuilder(str2) if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        } !(str2.equals(sb3.reverse().toString())) (str2.equals(sb3.reverse().toString())) str2.equals str2 sb3.reverse().toString() sb3.reverse().toString sb3.reverse() sb3.reverse sb3 {
          ans = "No";
        } ans = "No" ans "No" System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main{

	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	}

} public class Main{

	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	}

} Main
import java.util.*;

public class Main{

	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int N = s.length();
        String ans = "Yes";
        StringBuilder sb1 = new StringBuilder(s);
        if(!(s.equals(sb1.reverse().toString()))){
          ans = "No";
        }
      
        String str1 = s.substring(0,(N-1)/2);
        StringBuilder sb2 = new StringBuilder(str1);
        if(!(str1.equals(sb2.reverse().toString()))){
          ans = "No";
        }
      
        String str2 = s.substring((N+3)/2-1,N);
        StringBuilder sb3 = new StringBuilder(str2);
        if(!(str2.equals(sb3.reverse().toString()))){
          ans = "No";
        }
      
      System.out.println(ans);
      
	}

}