import java.util.*;
public class Main  
{ 
    static boolean isPalindrome(String str)
    {
      	StringBuilder sb = new StringBuilder(str);
      	String st = sb.reverse().toString();
      	return st.equals(str);
    }  
    public static void main(String[] args) 
    { 
        Scanner sc =new Scanner(System.in);
        String str = sc.next();
        int N = str.length();
      	String s = str + " ";
      	int q =(N-1)/2 , p = (N+3)/2;
        if(isPalindrome(str) && isPalindrome(str.substring(0,q)) && isPalindrome(s.substring(p-1,str.length())))
        {
          	System.out.println("Yes");
        }
      else
      {
        System.out.println("No");
      }
    } 
} 
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz