import java.util.*

fun main(args: Array<String>) {

    var sc = Scanner(System.`in`)

    val s = sc.nextLine()

    val n = s.length


    if(isKaibun(s) && isKaibun(s.slice(0 until (n-1)/2)) && isKaibun(s.slice((n+3/2 until n)))) {
        println("Yes")
    } else {
        println("No")
    }



}

public fun isKaibun(s:String): Boolean{
    return s.equals(s.reversed())
}