import java.util.*;
public class Main {
    public static boolean isPalindrome(String s){
        char[] sc = s.toCharArray();
        for(int i=0;i<sc.length/2;i++){
            if(sc[i] != sc[sc.length-1-i]){
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S=sc.next();
        int N = S.length();
        if(isPalindrome(S) &
                isPalindrome(S.substring(0, (N-1)/2)) &
                isPalindrome(S.substring((N+3)/2-1, N))){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
    }
}
 import java.util.*; util.* java public class Main {
    public static boolean isPalindrome(String s){
        char[] sc = s.toCharArray();
        for(int i=0;i<sc.length/2;i++){
            if(sc[i] != sc[sc.length-1-i]){
                return false;
            }
        }
        return true;
    }

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

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

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S=sc.next();
        int N = S.length();
        if(isPalindrome(S) &
                isPalindrome(S.substring(0, (N-1)/2)) &
                isPalindrome(S.substring((N+3)/2-1, N))){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
    }
} Main
import java.util.*;
public class Main {
    public static boolean isPalindrome(String s){
        char[] sc = s.toCharArray();
        for(int i=0;i<sc.length/2;i++){
            if(sc[i] != sc[sc.length-1-i]){
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String S=sc.next();
        int N = S.length();
        if(isPalindrome(S) &
                isPalindrome(S.substring(0, (N-1)/2)) &
                isPalindrome(S.substring((N+3)/2-1, N))){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
    }
}

