import java.util.Scanner;

public class Main {
    public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
} Main public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    } isPalindrome {
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    } for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        } int i=0; int i=0; i 0 i<s.length()/2 i s.length()/2 s.length() s.length s 2 i++ i++ i {
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        } {
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        } if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            } s.charAt(i)!=s.charAt(s.length()-1-i) s.charAt(i) s.charAt s i s.charAt(s.length()-1-i) s.charAt s s.length()-1-i s.length()-1-i s.length() s.length s 1 i {
               return false;
            } return false; false return true; true String s s public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    } main {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        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 if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        } isPalindrome(s) isPalindrome s {
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        } String s1 s1 s2; s2 s1=s.substring(0,(s.length()-1)/2) s1 s.substring(0,(s.length()-1)/2) s.substring s 0 (s.length()-1)/2 (s.length()-1) s.length() s.length s 1 2 s2=s.substring((s.length()+3)/2-1,s.length()) s2 s.substring((s.length()+3)/2-1,s.length()) s.substring s (s.length()+3)/2-1 (s.length()+3)/2 (s.length()+3) s.length() s.length s 3 2 1 s.length() s.length s if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            } isPalindrome(s1)&&isPalindrome(s2) isPalindrome(s1) isPalindrome s1 isPalindrome(s2) isPalindrome s2 {
                System.out.println("Yes");
                return;
            } System.out.println("Yes") System.out.println System.out System System.out "Yes" return; System.out.println("No") System.out.println System.out System System.out "No" String[] args args public class Main {
    public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
} public class Main {
    public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
} Main
import java.util.Scanner;

public class Main {
    public static boolean isPalindrome(String s){
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i)!=s.charAt(s.length()-1-i)){
               return false;
            }
        }
        return true;
    }
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        String s= scan.next();
        if(isPalindrome(s)){
            String s1,s2;
            s1=s.substring(0,(s.length()-1)/2);
            //System.err.println(s1);
            s2=s.substring((s.length()+3)/2-1,s.length());
            //System.err.println(s2);
            if(isPalindrome(s1)&&isPalindrome(s2)){
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
}
