import java.util.*;

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

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    String ans = "Yes";
    for(int i = 0; i < s.length(); i++) {
      if(s.charAt(i) != s.charAt(s.length() - 1 - i)) {
        ans = "No";
        break;
      }
    }
    for(int i = 0; i < (s.length() - 1) / 2; i++) {
      if(s.charAt(i) != s.charAt((s.length() - 1) / 2 - 1 - i)) {
        ans = "No";
        break;
      }
    }
    for(int i = (s.length() + 1) / 2; i < s.length(); i++) {
      if(s.charAt(i) != s.charAt(s.length() - 1 - (i - (s.length() + 1) / 2))) {
        ans = "No";
        break;
      }
    }
    System.out.println(ans);
  }
}