import java.util.Scanner

fun main(args: Array<String>){
    val scn = Scanner(System.`in`)
    val str = scn.nextLine()
    val reverse = str!!.reversed()
    val n = str.length

    if(n % 2 == 0 || n !in 3..99){
        print("No")
        return
    }

    val regex = Regex("[a-z]*")
    if(!regex.matches(str)){
        print("No")
        return
    }



    if(str!=reverse){
        print("No")
        return
    }

    val mae = str.substring(0..(((n-1)/2)-1))
    val reverseMae = mae.reversed()

    if(mae!=reverseMae){
        print("No")
        return
    }

    val ushiro = str.substring((((n+3)/2)-1)..(n-1))
    val reverseUshiro = ushiro.reversed()

    if(ushiro!=reverseUshiro){
        print("No")
        return
    }


    print("Yes")
}