import java.util.*;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("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 str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
        //System.out.println(ans);
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
        //System.out.println(ans);
    } main {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
        //System.out.println(ans);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String str = sc.next(); str sc.next() sc.next sc int L = str.length(); L str.length() str.length str char[] c1 = new char[L]; c1 new char[L] L boolean test = true; test true for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        } int i=0; int i=0; i 0 i<L i L i++ i++ i {
            c1[i] = str.charAt(i);
        } {
            c1[i] = str.charAt(i);
        } c1[i] = str.charAt(i) c1[i] c1 i str.charAt(i) str.charAt str i for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        } int i=0; int i=0; i 0 i<(L-1)/2 i (L-1)/2 (L-1) L 1 2 i++ i++ i {
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        } {
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        } if(c1[i] != c1[L-(i+1)]){
                test = false;
            } c1[i] != c1[L-(i+1)] c1[i] c1 i c1[L-(i+1)] c1 L-(i+1) L (i+1) i 1 {
                test = false;
            } test = false test false if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            } c1[i] != c1[((L-1)/2)-(i+1)] c1[i] c1 i c1[((L-1)/2)-(i+1)] c1 ((L-1)/2)-(i+1) ((L-1)/2) (L-1) L 1 2 (i+1) i 1 {
                test = false;
            } test = false test false if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        } test {
            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 void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
        //System.out.println(ans);
    }
} public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("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 str = sc.next();
        //int N = sc.nextInt();
        int L = str.length();
        char[] c1 = new char[L];
        boolean test = true;
        
        for(int i=0; i<L; i++){
            c1[i] = str.charAt(i);
        }
        
        for(int i=0; i<(L-1)/2; i++){
            if(c1[i] != c1[L-(i+1)]){
                test = false;
            }
            if(c1[i] != c1[((L-1)/2)-(i+1)]){
                test = false;
            }
        }
        
        if(test){
            System.out.println("Yes");
        }else{
            System.out.println("No");
        }
        //System.out.println(ans);
    }
}