
import java.util.*;

public class Main {
	static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	}
} import java.util.*; util.* java public class Main {
	static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	}
} Main static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	} main {
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) String str=sc.next(); str sc.next() sc.next sc int len=str.length(); len str.length() str.length str int i=0 i 0 j=len-1; j len-1 len 1 boolean ju=true; ju true while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } i<j i j {
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} str.charAt(i++)!=str.charAt(j--) str.charAt(i++) str.charAt str i++ i str.charAt(j--) str.charAt str j-- j {
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} ju=false ju false System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 i=0 i 0 j=(len-1)/2 j (len-1)/2 (len-1) len 1 2 j-=1 j 1 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } i<j i j {
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} str.charAt(i++)!=str.charAt(j--) str.charAt(i++) str.charAt str i++ i str.charAt(j--) str.charAt str j-- j {
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} ju=false ju false System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 i=(len+3)/2 i (len+3)/2 (len+3) len 3 2 i-=1 i 1 j=len-1 j len-1 len 1 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } i<j i j {
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 } if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} str.charAt(i++)!=str.charAt(j--) str.charAt(i++) str.charAt str i++ i str.charAt(j--) str.charAt str j-- j {
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	} ju=false ju false System.out.println("No") System.out.println System.out System System.out "No" System.exit(0) System.exit System 0 if(ju)System.out.println("Yes"); ju System.out.println("Yes") System.out.println System.out System System.out "Yes" String args[] args public class Main {
	static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	}
} public class Main {
	static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	}
} Main

import java.util.*;

public class Main {
	static public void main(String args[]){
		Scanner sc=new Scanner(System.in);
		 
		 String str=sc.next();
		 int len=str.length();
		 int i=0,j=len-1;
		 boolean ju=true;
		 
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=0;
		 j=(len-1)/2;
		 j-=1;
		 while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 i=(len+3)/2;
		 i-=1;
		 j=len-1;
		  while(i<j){
		 	if(str.charAt(i++)!=str.charAt(j--)){
				ju=false;
				System.out.println("No");
				System.exit(0);
		 	}
		 }
		 
		 if(ju)System.out.println("Yes");
	}
}