fun iskaibun(s:String):Boolean = s == s.reversed()
fun main(args:Array<String>) {
    val s:String = readLine()!!
    val n:Int = s.length
    if (iskaibun(s) && iskaibun(s.substring(0, (n-1)/2)) && iskaibun(s.substring((n+3)/2-1, n))) {
        println("Yes")
        return
    }
    println("No")
}