import java.util.*; 

public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
}

/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