import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    }
  	public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); }
} import java.util.*; util.* java import java.io.*; io.* java public class Main {
	public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    }
  	public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); }
} Main public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    } main {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    } Scanner file = new Scanner(System.in); file new Scanner(System.in) String s = file.next(); s file.next() file.next file file.close() file.close file boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1)); works is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1)) is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1)) is(s) is s is(s.substring(0,s.length()/2)) is s.substring(0,s.length()/2) s.substring s 0 s.length()/2 s.length() s.length s 2 is(s.substring(s.length()/2+1)) is s.substring(s.length()/2+1) s.substring s s.length()/2+1 s.length()/2 s.length() s.length s 2 1 System.out.println(works ? "Yes" : "No") System.out.println System.out System System.out works ? "Yes" : "No" works "Yes" "No" System.exit(0) System.exit System 0 String[] args args public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); } is { return new StringBuilder(s).reverse().toString().equals(s); } return new StringBuilder(s).reverse().toString().equals(s); new StringBuilder(s).reverse().toString().equals(s) new StringBuilder(s).reverse().toString().equals new StringBuilder(s).reverse().toString() new StringBuilder(s).reverse().toString new StringBuilder(s).reverse() new StringBuilder(s).reverse new StringBuilder(s) s String s s public class Main {
	public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    }
  	public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); }
} public class Main {
	public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    }
  	public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); }
} Main
import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) throws Exception {
    	Scanner file = new Scanner(System.in);
      	String s = file.next();
      	file.close();
      	boolean works = is(s) && is(s.substring(0,s.length()/2)) && is(s.substring(s.length()/2+1));
      	System.out.println(works ? "Yes" : "No");
      	System.exit(0);
    }
  	public static boolean is(String s) { return new StringBuilder(s).reverse().toString().equals(s); }
}