import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            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);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            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 boolean judge = false; judge false if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        } s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1)) s.substring(0, (s.length() - 1) / 2).equals s.substring(0, (s.length() - 1) / 2) s.substring s 0 (s.length() - 1) / 2 (s.length() - 1) s.length() s.length s 1 2 s.substring((s.length() + 3) / 2 - 1) s.substring s (s.length() + 3) / 2 - 1 (s.length() + 3) / 2 (s.length() + 3) s.length() s.length s 3 2 1 {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        } StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2)); sb new StringBuffer(s.substring(0, (s.length() - 1) / 2)) String reversed_s = sb.reverse().toString(); reversed_s sb.reverse().toString() sb.reverse().toString sb.reverse() sb.reverse sb if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            } s.substring(0, (s.length() - 1) / 2).equals(reversed_s) s.substring(0, (s.length() - 1) / 2).equals s.substring(0, (s.length() - 1) / 2) s.substring s 0 (s.length() - 1) / 2 (s.length() - 1) s.length() s.length s 1 2 reversed_s {
                judge = true;
            } judge = true judge true if (judge) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        } judge {
            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);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            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);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            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);
        String s = sc.next();
        boolean judge = false;
        if (s.substring(0, (s.length() - 1) / 2).equals(s.substring((s.length() + 3) / 2 - 1))) {
            StringBuffer sb = new StringBuffer(s.substring(0, (s.length() - 1) / 2));
            String reversed_s = sb.reverse().toString();
            if (s.substring(0, (s.length() - 1) / 2).equals(reversed_s)) {
                judge = true;
            }
        }
        if (judge) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
        sc.close();
    }
}