import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    }
} Main public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    } main {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String str = sc.next(); str sc.next() sc.next sc char[] c = str.toCharArray(); c str.toCharArray() str.toCharArray str int a = 1 -1; a 1 -1 1 1 int b = c.length -1; b c.length -1 c.length c c.length 1 while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } a <= b a b {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } if (c[a] != c[b]) {
                System.out.println("No");
                return;
            } c[a] != c[b] c[a] c a c[b] c b {
                System.out.println("No");
                return;
            } System.out.println("No") System.out.println System.out System System.out "No" return; a++ a b-- b a = 1 -1 a 1 -1 1 1 b = ((c.length - 1)/2) -1 b ((c.length - 1)/2) -1 ((c.length - 1)/2) (c.length - 1) c.length c c.length 1 2 1 while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } a <= b a b {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } if (c[a] != c[b]) {
                System.out.println("No");
                return;
            } c[a] != c[b] c[a] c a c[b] c b {
                System.out.println("No");
                return;
            } System.out.println("No") System.out.println System.out System System.out "No" return; a++ a b-- b a = ((c.length+3)/2) -1 a ((c.length+3)/2) -1 ((c.length+3)/2) (c.length+3) c.length c c.length 3 2 1 b = c.length -1 b c.length -1 c.length c c.length 1 while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } a <= b a b {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        } if (c[a] != c[b]) {
                System.out.println("No");
                return;
            } c[a] != c[b] c[a] c a c[b] c b {
                System.out.println("No");
                return;
            } System.out.println("No") System.out.println System.out System System.out "No" return; a++ a b-- b System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char[] c = str.toCharArray();
        
        int a = 1 -1;
        int b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = 1 -1;
        b = ((c.length - 1)/2) -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        
        a = ((c.length+3)/2) -1;
        b = c.length -1;
        while (a <= b) {
            if (c[a] != c[b]) {
                System.out.println("No");
                return;
            }
            a++;
            b--;
        }
        System.out.println("Yes");
    }
}
