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");
    }
  }
} import java.util.*; util.* java 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");
    }
  }
} 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");
    }
  } main {
    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");
    }
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.next(); s sc.next() sc.next sc int n = s.length(); n s.length() s.length s boolean b = true; b true for(int i=0 ; i<n/2 ; i++){
      if(s.charAt(i)!=s.charAt(n-1-i)){
        b = false;
        break;
      }else{
        continue;
      }
    } int i=0 ; int i=0 ; i 0 i<n/2 i n/2 n 2 i++ i++ i {
      if(s.charAt(i)!=s.charAt(n-1-i)){
        b = false;
        break;
      }else{
        continue;
      }
    } {
      if(s.charAt(i)!=s.charAt(n-1-i)){
        b = false;
        break;
      }else{
        continue;
      }
    } if(s.charAt(i)!=s.charAt(n-1-i)){
        b = false;
        break;
      }else{
        continue;
      } s.charAt(i)!=s.charAt(n-1-i) s.charAt(i) s.charAt s i s.charAt(n-1-i) s.charAt s n-1-i n-1-i n 1 i {
        b = false;
        break;
      } b = false b false break; {
        continue;
      } 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;
        }
      }
    } 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;
        }
      }
    } 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;
        }
      } int i=0 ; int i=0 ; i 0 i<((n-1)/2)-1 i ((n-1)/2)-1 ((n-1)/2) (n-1) n 1 2 1 i++ i++ i {
        if(s.charAt(i)!=s.charAt(((n-1)/2)-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      } {
        if(s.charAt(i)!=s.charAt(((n-1)/2)-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      } if(s.charAt(i)!=s.charAt(((n-1)/2)-1-i)){
          b = false;
          break;
        }else{
          continue;
        } s.charAt(i)!=s.charAt(((n-1)/2)-1-i) s.charAt(i) s.charAt s i s.charAt(((n-1)/2)-1-i) s.charAt s ((n-1)/2)-1-i ((n-1)/2)-1-i ((n-1)/2) (n-1) n 1 2 1 i {
          b = false;
          break;
        } b = false b false break; {
          continue;
        } 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;
        }
      }
    } 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;
        }
      }
    } 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;
        }
      } int i=((n+3)/2)-1 ; int i=((n+3)/2)-1 ; i ((n+3)/2)-1 ((n+3)/2) (n+3) n 3 2 1 i<(3*n+3)/4 i (3*n+3)/4 (3*n+3) 3*n 3 n 3 4 i++ i++ i {
        if(s.charAt(i)!=s.charAt(n-1+(n+3)/2-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      } {
        if(s.charAt(i)!=s.charAt(n-1+(n+3)/2-1-i)){
          b = false;
          break;
        }else{
          continue;
        }
      } if(s.charAt(i)!=s.charAt(n-1+(n+3)/2-1-i)){
          b = false;
          break;
        }else{
          continue;
        } s.charAt(i)!=s.charAt(n-1+(n+3)/2-1-i) s.charAt(i) s.charAt s i s.charAt(n-1+(n+3)/2-1-i) s.charAt s n-1+(n+3)/2-1-i n-1+(n+3)/2-1-i n-1+(n+3)/2 n-1 n 1 (n+3)/2 (n+3) n 3 2 1 i {
          b = false;
          break;
        } b = false b false break; {
          continue;
        } continue; if(b){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    } b {
      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 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");
    }
  }
} 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");
    }
  }
} Main
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");
    }
  }
}
