import java.util.*;
public class Main{
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    int n = s.length();
    boolean b = true;
    for(int i=0 ; i<n/2 ; i++){
      if(s.charAt(i)!=s.charAt(n-1-i)){
        b = false;
        break;
      }else{
        continue;
      }
    }
    if(b){
      for(int i=0 ; i<((n-1)/2)-1 ; i++){
        if(s.charAt(i)!=s.charAt(((n-1)/2)-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      }
    }
    if(b){
      for(int i=((n+3)/2)-1 ; i<(3*n+3)/4 ; i++){
        if(s.charAt(i)!=s.charAt(n-1+(n+3)/2-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      }
    }
    if(b){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  }
}

/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz