import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	}
} import java.util.*; util.* java import java.io.*; io.* java public class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	}
} Main public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	} main {
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.next(); s sc.next() sc.next sc StringBuffer sb = new StringBuffer(s); sb new StringBuffer(s) String rs = sb.reverse().toString(); rs sb.reverse().toString() sb.reverse().toString sb.reverse() sb.reverse sb boolean b = true; b true int n = s.length(); n s.length() s.length s if(!rs.equals(s))
      b = false; !rs.equals(s) rs.equals(s) rs.equals rs s b = false b false String s1 = s.substring(0 , (n - 1) / 2); s1 s.substring(0 , (n - 1) / 2) s.substring s 0 (n - 1) / 2 (n - 1) n 1 2 String s2 = rs.substring((n + 1) / 2 , n); s2 rs.substring((n + 1) / 2 , n) rs.substring rs (n + 1) / 2 (n + 1) n 1 2 n if(!s1.equals(s2))
      b = false; !s1.equals(s2) s1.equals(s2) s1.equals s1 s2 b = false b false String s3 = rs.substring(0 , (n - 1) / 2 ); s3 rs.substring(0 , (n - 1) / 2 ) rs.substring rs 0 (n - 1) / 2 (n - 1) n 1 2 String s4 = s.substring((n + 1) / 2 , n); s4 s.substring((n + 1) / 2 , n) s.substring s (n + 1) / 2 (n + 1) n 1 2 n if(!s3.equals(s4))
      b = false; !s3.equals(s4) s3.equals(s4) s3.equals s3 s4 b = false b false System.out.println(b ? "Yes" : "No") System.out.println System.out System System.out b ? "Yes" : "No" b "Yes" "No" String[] args args public class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	}
} public class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	}
} Main
import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
    StringBuffer sb = new StringBuffer(s);
    String rs = sb.reverse().toString();
    boolean b = true;
    int n = s.length();
    if(!rs.equals(s))
      b = false;
      String s1 = s.substring(0 , (n - 1) / 2);
      String s2 = rs.substring((n + 1) / 2 , n);
    if(!s1.equals(s2))
      b = false;
      String s3 = rs.substring(0 , (n - 1) / 2 );
      String s4 = s.substring((n + 1) / 2 , n);
    if(!s3.equals(s4))
      b = false;
	System.out.println(b ? "Yes" : "No");
	}
}