/*package whatever //do not write package name here */

import java.io.*;
import java.util.*;
public class Main {
	public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	}
	static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	}
} import java.io.*; io.* java import java.util.*; util.* java public class Main {
	public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	}
	static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	}
} Main public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	} main {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	} Scanner input = new Scanner(System.in); input new Scanner(System.in) String s = input.next(); s input.next() input.next input int n = s.length(); n s.length() s.length s String s1 = s.substring(0,(n-1)/2); s1 s.substring(0,(n-1)/2) s.substring s 0 (n-1)/2 (n-1) n 1 2 String s2 = s.substring((n+1)/2,n); s2 s.substring((n+1)/2,n) s.substring s (n+1)/2 (n+1) n 1 2 n if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No"); isPalin(s)&&isPalin(s1)&&isPalin(s2) isPalin(s)&&isPalin(s1)&&isPalin(s2) isPalin(s) isPalin s isPalin(s1) isPalin s1 isPalin(s2) isPalin s2 System.out.println("Yes") System.out.println System.out System System.out "Yes" System.out.println("No") System.out.println System.out System System.out "No" String[] args args static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	} isPalin {
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	} if(s.length()==1)
	        return true; s.length()==1 s.length() s.length s 1 return true; true int i=0 i 0 j=s.length()-1; j s.length()-1 s.length() s.length s 1 boolean flag = false; flag false while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    } i<j i j {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    } if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        } s.charAt(i)==s.charAt(j) s.charAt(i) s.charAt s i s.charAt(j) s.charAt s j flag = true flag true {
	            flag = false;
	            break;
	        } flag = false flag false break; i++ i j-- j return flag; flag String s s public class Main {
	public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	}
	static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	}
} public class Main {
	public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	}
	static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	}
} Main
/*package whatever //do not write package name here */

import java.io.*;
import java.util.*;
public class Main {
	public static void main (String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		int n = s.length();
		String s1 = s.substring(0,(n-1)/2);
		String s2 = s.substring((n+1)/2,n);
		if(isPalin(s)&&isPalin(s1)&&isPalin(s2))
		    System.out.println("Yes");
		else
		    System.out.println("No");
		
	}
	static boolean isPalin(String s)
	{
	    if(s.length()==1)
	        return true;
	    int i=0,j=s.length()-1;
	    boolean flag = false;
	    while(i<j)
	    {
	        if(s.charAt(i)==s.charAt(j))
	            flag = true;
	        else{
	            flag = false;
	            break;
	        }
	        i++;
	        j--;
	    }
	    return flag;
	}
}