import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    } 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 boolean flag = true; flag true for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        } {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        } if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            } s.charAt(i) != s.charAt(n - 1 - i) s.charAt(i) s.charAt s i s.charAt(n - 1 - i) s.charAt s n - 1 - i n - 1 - i n 1 i {
                flag = false;
                break;
            } flag = false flag false break; int m = (n - 1) / 2; m (n - 1) / 2 (n - 1) n 1 2 for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        } {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        } if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            } s.charAt(i) != s.charAt(m - 1 - i) s.charAt(i) s.charAt s i s.charAt(m - 1 - i) s.charAt s m - 1 - i m - 1 - i m 1 i {
                flag = false;
                break;
            } flag = false flag false break; if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        } flag {
            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" sc.close() sc.close sc String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // int n = Integer.parseInt(sc.next());
        // int m = Integer.parseInt(sc.next());
        String s = sc.next();
        int n = s.length();
        // int[] s = new int[n];

        // for (int i = 0; i < n; i++) {
        // s[i] = Integer.parseInt(sc.next());

        // }
        boolean flag = true;

        for (int i = 0; i < n; i++) {
            if (s.charAt(i) != s.charAt(n - 1 - i)) {
                flag = false;
                break;
            }
        }

        int m = (n - 1) / 2;
        for (int i = 0; i < m; i++) {
            if (s.charAt(i) != s.charAt(m - 1 - i)) {
                flag = false;
                break;
            }
        }

        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
}