import java.io.*;

public class Main {
    public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    }

    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    }
} import java.io.*; io.* java public class Main {
    public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    }

    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    }
} Main public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    } checkPal {
        return sb.toString().contentEquals (sb.reverse());
    } return sb.toString().contentEquals (sb.reverse()); sb.toString().contentEquals (sb.reverse()) sb.toString().contentEquals sb.toString() sb.toString sb sb.reverse() sb.reverse sb StringBuilder sb sb public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    } main {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    } BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in)); reader new BufferedReader (new InputStreamReader (System.in)) String S = reader.readLine(); S reader.readLine() reader.readLine reader StringBuilder sb = new StringBuilder (S); sb new StringBuilder (S) String str = S.substring (0, S.length() / 2); str S.substring (0, S.length() / 2) S.substring S 0 S.length() / 2 S.length() S.length S 2 StringBuilder sbstr = new StringBuilder (str); sbstr new StringBuilder (str) System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No") System.out.println System.out System System.out checkPal (sb) && checkPal (sbstr) ? "Yes" : "No" checkPal (sb) && checkPal (sbstr) checkPal (sb) checkPal sb checkPal (sbstr) checkPal sbstr "Yes" "No" String[] args args public class Main {
    public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    }

    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    }
} public class Main {
    public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    }

    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    }
} Main
import java.io.*;

public class Main {
    public static boolean checkPal (StringBuilder sb) {
        return sb.toString().contentEquals (sb.reverse());
    }

    public static void main (String[] args) throws Exception {
        BufferedReader reader =
            new BufferedReader (new InputStreamReader (System.in));
        String S = reader.readLine();
        StringBuilder sb = new StringBuilder (S);
        String str = S.substring (0, S.length() / 2);
        StringBuilder sbstr = new StringBuilder (str);
        System.out.println (checkPal (sb) && checkPal (sbstr) ? "Yes" : "No");
    }
}