"use strict";

const isCycle = function(s){
    let l = 0
    let r = s.length-1
    while(l<=r){
        if(s[l] !== s[r]) return false
        l++
        r--
    }
    return true
}

const main = arg => {
    const input = arg.trim().split("\n");

    const S = input[0];
    const N = S.length
    let first = isCycle(S)
    let sec = isCycle(S.slice(0, (N-1)/2))
    let third = isCycle(S.slice((N+3)/2-1))
    if(first && sec && third) console.log("Yes")
    else console.log("No")
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));  
