fun main(){
    val s = readLine()!!.toString()
    val n = s.length

    fun palindrome(s: String): Boolean{
//        println(s)
//        println(s.length)
        for(i in 0 .. (s.length-1)/2){
            if(s[i] != s[s.length - 1 - i])
                return false
        }
        return true
    }

    //substring; 終了インデックスの１つ前までで切る
    if(
            palindrome(s) &&
            palindrome(s.substring(0, (n - 1)/2)) &&
            palindrome(s.substring((n + 3)/2 - 1   , n))
    ) println("Yes")
    else println("No")
}