import java.util.*;
class Main
{
  public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    
    String s1 = sc.next(); //元の文字列
    int n = s1.length();
    
    //sが回文であるかをチェック
    StringBuffer sb = new StringBuffer(s1);
    String s2 = sb.reverse().toString(); //反転した文字列
    
    
    //前半が回文かを確かめる
    String str2 = s1.substring(0,(n-1)/2);
    
    StringBuffer sb1 = new StringBuffer(str2);
    String s3 = sb1.reverse().toString();
    
    
    //後半が回文かを確かめる
    String str3 = s1.substring((n+3)/2-1,n);
    
    StringBuffer sb2 = new StringBuffer(str3);
    String s4 = sb2.reverse().toString();
    
    if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  }
} import java.util.*; util.* java class Main
{
  public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    
    String s1 = sc.next(); //元の文字列
    int n = s1.length();
    
    //sが回文であるかをチェック
    StringBuffer sb = new StringBuffer(s1);
    String s2 = sb.reverse().toString(); //反転した文字列
    
    
    //前半が回文かを確かめる
    String str2 = s1.substring(0,(n-1)/2);
    
    StringBuffer sb1 = new StringBuffer(str2);
    String s3 = sb1.reverse().toString();
    
    
    //後半が回文かを確かめる
    String str3 = s1.substring((n+3)/2-1,n);
    
    StringBuffer sb2 = new StringBuffer(str3);
    String s4 = sb2.reverse().toString();
    
    if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  }
} Main public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    
    String s1 = sc.next(); //元の文字列
    int n = s1.length();
    
    //sが回文であるかをチェック
    StringBuffer sb = new StringBuffer(s1);
    String s2 = sb.reverse().toString(); //反転した文字列
    
    
    //前半が回文かを確かめる
    String str2 = s1.substring(0,(n-1)/2);
    
    StringBuffer sb1 = new StringBuffer(str2);
    String s3 = sb1.reverse().toString();
    
    
    //後半が回文かを確かめる
    String str3 = s1.substring((n+3)/2-1,n);
    
    StringBuffer sb2 = new StringBuffer(str3);
    String s4 = sb2.reverse().toString();
    
    if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  } main {
    Scanner sc = new Scanner(System.in);
    
    String s1 = sc.next(); //元の文字列
    int n = s1.length();
    
    //sが回文であるかをチェック
    StringBuffer sb = new StringBuffer(s1);
    String s2 = sb.reverse().toString(); //反転した文字列
    
    
    //前半が回文かを確かめる
    String str2 = s1.substring(0,(n-1)/2);
    
    StringBuffer sb1 = new StringBuffer(str2);
    String s3 = sb1.reverse().toString();
    
    
    //後半が回文かを確かめる
    String str3 = s1.substring((n+3)/2-1,n);
    
    StringBuffer sb2 = new StringBuffer(str3);
    String s4 = sb2.reverse().toString();
    
    if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s1 = sc.next(); s1 sc.next() sc.next sc int n = s1.length(); n s1.length() s1.length s1 StringBuffer sb = new StringBuffer(s1); sb new StringBuffer(s1) String s2 = sb.reverse().toString(); s2 sb.reverse().toString() sb.reverse().toString sb.reverse() sb.reverse sb String str2 = s1.substring(0,(n-1)/2); str2 s1.substring(0,(n-1)/2) s1.substring s1 0 (n-1)/2 (n-1) n 1 2 StringBuffer sb1 = new StringBuffer(str2); sb1 new StringBuffer(str2) String s3 = sb1.reverse().toString(); s3 sb1.reverse().toString() sb1.reverse().toString sb1.reverse() sb1.reverse sb1 String str3 = s1.substring((n+3)/2-1,n); str3 s1.substring((n+3)/2-1,n) s1.substring s1 (n+3)/2-1 (n+3)/2 (n+3) n 3 2 1 n StringBuffer sb2 = new StringBuffer(str3); sb2 new StringBuffer(str3) String s4 = sb2.reverse().toString(); s4 sb2.reverse().toString() sb2.reverse().toString sb2.reverse() sb2.reverse sb2 if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    } (s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4)) (s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4)) (s1.equals(s2)) s1.equals s1 s2 (str2.equals(s3)) str2.equals str2 s3 (str3.equals(s4)) str3.equals str3 s4 {
      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" String[] args args
import java.util.*;
class Main
{
  public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    
    String s1 = sc.next(); //元の文字列
    int n = s1.length();
    
    //sが回文であるかをチェック
    StringBuffer sb = new StringBuffer(s1);
    String s2 = sb.reverse().toString(); //反転した文字列
    
    
    //前半が回文かを確かめる
    String str2 = s1.substring(0,(n-1)/2);
    
    StringBuffer sb1 = new StringBuffer(str2);
    String s3 = sb1.reverse().toString();
    
    
    //後半が回文かを確かめる
    String str3 = s1.substring((n+3)/2-1,n);
    
    StringBuffer sb2 = new StringBuffer(str3);
    String s4 = sb2.reverse().toString();
    
    if((s1.equals(s2))&&(str2.equals(s3))&&(str3.equals(s4))){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  }
}