import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    }

    private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    }

    private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    }
} Main public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    } main {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String s = scan.next(); s scan.next() scan.next scan int first = (s.length()-1)/2; first (s.length()-1)/2 (s.length()-1) s.length() s.length s 1 2 int second = (s.length()+3)/2; second (s.length()+3)/2 (s.length()+3) s.length() s.length s 3 2 System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No") System.out.println System.out System System.out isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No" isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1)) isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1)) isPalindrom(s) isPalindrom s isPalindrom(s.substring(0,first)) isPalindrom s.substring(0,first) s.substring s 0 first isPalindrom(s.substring(second-1)) isPalindrom s.substring(second-1) s.substring s second-1 second 1 "Yes" "No" String[] args args private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    } isPalindrom {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    } return new StringBuilder(substring).reverse().toString().equals(substring); new StringBuilder(substring).reverse().toString().equals(substring) new StringBuilder(substring).reverse().toString().equals new StringBuilder(substring).reverse().toString() new StringBuilder(substring).reverse().toString new StringBuilder(substring).reverse() new StringBuilder(substring).reverse new StringBuilder(substring) substring String substring substring public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    }

    private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    }
} public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    }

    private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();

        int first = (s.length()-1)/2;
        int second = (s.length()+3)/2;
        System.out.println(isPalindrom(s) && isPalindrom(s.substring(0,first)) && isPalindrom(s.substring(second-1))?"Yes":"No");
    }

    private static boolean isPalindrom(String substring) {
        return new StringBuilder(substring).reverse().toString().equals(substring);
    }
}