fun main(args: Array<String>) {
    val s = readInputLine()
    println(if (isKai(s) && isKai(s.substring(0, ((s.length - 1) / 2))) && isKai(s.substring((s.length + 3) / 2 - 1, s.length))) "Yes" else "No")
}

fun readInputLine(): String {
    return readLine()!!
}

fun isKai(s: String): Boolean {
    var l = 0
    var r = s.length - 1
    while (l < r) {
        if (s[l] != s[r]) {
            return false
        }
        l++
        r--
    }
    return true
}

