import java.util.*; 

public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
} import java.util.*; util.* java public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
} Main static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    } isStrongPalindrome {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    } int len=s.length(); len s.length() s.length s int start; start int end=s.length(); end s.length() s.length s for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        } int i=0; int i=0; i 0 i<s.length()/2 i s.length()/2 s.length() s.length s 2 i++ i++ i {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        } {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        } if(s.charAt(i)!=s.charAt(len-i-1))
                return false; s.charAt(i)!=s.charAt(len-i-1) s.charAt(i) s.charAt s i s.charAt(len-i-1) s.charAt s len-i-1 len-i-1 len i 1 return false; false end=(len-1)/2 end (len-1)/2 (len-1) len 1 2 for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } int i=0; int i=0; i 0 i<end i end i++ i++ i {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } if(s.charAt(i)!=s.charAt(end-i-1))
                return false; s.charAt(i)!=s.charAt(end-i-1) s.charAt(i) s.charAt s i s.charAt(end-i-1) s.charAt s end-i-1 end-i-1 end i 1 return false; false start=(len+3)/2 start (len+3)/2 (len+3) len 3 2 end=len end len for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } int i=0; int i=0; i 0 i<end i end i++ i++ i {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        } if(s.charAt(i)!=s.charAt(end-i-1))
                return false; s.charAt(i)!=s.charAt(end-i-1) s.charAt(i) s.charAt s i s.charAt(end-i-1) s.charAt s end-i-1 end-i-1 end i 1 return false; false return true; true String s s public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    } main {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    } Scanner in =new Scanner(System.in); in new Scanner(System.in) String s = in.next(); s in.next() in.next in if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No"); isStrongPalindrome(s) isStrongPalindrome s 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" in.close() in.close in String[] args args public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
} public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
} Main
import java.util.*; 

public class Main{

    static boolean isStrongPalindrome(String s)
    {
        int len=s.length();
        int start;
        int end=s.length();

        for(int i=0;i<s.length()/2;i++)
        {
            if(s.charAt(i)!=s.charAt(len-i-1))
                return false;
        }

        end=(len-1)/2;
        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }

        start=(len+3)/2;
        end=len;

        for(int i=0;i<end;i++)
        {
            if(s.charAt(i)!=s.charAt(end-i-1))
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        
        Scanner in =new Scanner(System.in);

        String s = in.next();

        if(isStrongPalindrome(s))
            System.out.println("Yes");
        else
            System.out.println("No");
        
        in.close();
    }
}
