import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    }

} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util public class Main {

    public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    }

} Main public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    } main {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    } InputStreamReader is = new InputStreamReader(System.in); is new InputStreamReader(System.in) BufferedReader reader = new BufferedReader(is); reader new BufferedReader(is) List<String> mylist = new ArrayList<>(); mylist new ArrayList<>() String strinput = reader.readLine(); strinput reader.readLine() reader.readLine reader while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        } strinput != null strinput null {

            mylist.add(strinput);
            strinput = reader.readLine();

        } mylist.add(strinput) mylist.add mylist strinput strinput = reader.readLine() strinput reader.readLine() reader.readLine reader String s = mylist.get(0); s mylist.get(0) mylist.get mylist 0 StringBuilder sb = new StringBuilder(); sb new StringBuilder() StringBuilder s1 = new StringBuilder(); s1 new StringBuilder() StringBuilder s2 = new StringBuilder(); s2 new StringBuilder() sb.append(s) sb.append sb s s1.append(s.substring(0, s.length() / 2)) s1.append s1 s.substring(0, s.length() / 2) s.substring s 0 s.length() / 2 s.length() s.length s 2 s2.append(s.substring((s.length() / 2) + 1, s.length())) s2.append s2 s.substring((s.length() / 2) + 1, s.length()) s.substring s (s.length() / 2) + 1 (s.length() / 2) s.length() s.length s 2 1 s.length() s.length s Boolean chkflg = false; chkflg false if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        } s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length())) s.substring(0, s.length() / 2).equals s.substring(0, s.length() / 2) s.substring s 0 s.length() / 2 s.length() s.length s 2 s.substring((s.length() / 2) + 1, s.length()) s.substring s (s.length() / 2) + 1 (s.length() / 2) s.length() s.length s 2 1 s.length() s.length s {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        } if (s1.equals(s1.reverse())) {
                chkflg = true;
            } s1.equals(s1.reverse()) s1.equals s1 s1.reverse() s1.reverse s1 {
                chkflg = true;
            } chkflg = true chkflg true System.out.println(chkflg ? "Yes" : "No") System.out.println System.out System System.out chkflg ? "Yes" : "No" chkflg "Yes" "No" String[] args args public class Main {

    public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    }

} public class Main {

    public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    }

} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) throws Exception {

        InputStreamReader is = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(is);

        List<String> mylist = new ArrayList<>();

        // 標準入力からの値を変数strinputに代入
        String strinput = reader.readLine();

        while (strinput != null) {

            mylist.add(strinput);
            strinput = reader.readLine();

        }

        String s = mylist.get(0);
        StringBuilder sb = new StringBuilder();
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder();

        sb.append(s);
        s1.append(s.substring(0, s.length() / 2));
        s2.append(s.substring((s.length() / 2) + 1, s.length()));

        //        System.out.println(s1 + " " + s2 + " " + s1.equals(s2));

        Boolean chkflg = false;
        if (s.substring(0, s.length() / 2).equals(s.substring((s.length() / 2) + 1, s.length()))) {
            if (s1.equals(s1.reverse())) {
                chkflg = true;
            }
        }

        System.out.println(chkflg ? "Yes" : "No");
    }

}
