import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    }
    
    public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    }
} import java.util.*; util.* java public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    }
    
    public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    }
} Main public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    } main {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    } Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String s = scan.next(); s scan.next() scan.next scan int n = s.length(); n s.length() s.length s System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No") System.out.println System.out System System.out isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No" isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) isPal(s) isPal s isPal(s.substring(0, (n - 1) / 2)) isPal s.substring(0, (n - 1) / 2) s.substring s 0 (n - 1) / 2 (n - 1) n 1 2 isPal(s.substring((n + 3) / 2 - 1)) isPal s.substring((n + 3) / 2 - 1) s.substring s (n + 3) / 2 - 1 (n + 3) / 2 (n + 3) n 3 2 1 "Yes" "No" scan.close() scan.close scan String[] args args public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    } isPal {
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    } for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        } 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() - i - 1)) return false;
        } {
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        } if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false; s.charAt(i) != s.charAt(s.length() - i - 1) s.charAt(i) s.charAt s i s.charAt(s.length() - i - 1) s.charAt s s.length() - i - 1 s.length() - i - 1 s.length() s.length s i 1 return false; false return true; true String s s public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    }
    
    public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    }
} public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    }
    
    public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    }
} Main
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int n = s.length();
        System.out.println(isPal(s) && isPal(s.substring(0, (n - 1) / 2)) && isPal(s.substring((n + 3) / 2 - 1)) ? "Yes" : "No");
        scan.close();
    }
    
    public static boolean isPal(String s){
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
        }
        return true;
    }
}
