import java.io.{BufferedOutputStream, BufferedReader, InputStreamReader, PrintWriter}

object Main {
  def main(args: Array[String]): Unit = {
    val in = new BufferedReader(new InputStreamReader(System.in))
    val out = new PrintWriter(new BufferedOutputStream(System.out))
    val s = in.readLine()

    def isPalindrome(s: String): Boolean = {
      s == s.reverse
    }

    out.println({
      if (isPalindrome(s) &&
        isPalindrome(s.substring(0, (s.length - 1) / 2)) &&
        isPalindrome(s.substring((s.length + 3) / 2 + 1))) {
        "Yes"
      } else {
        "No"
      }
    })

    out.flush()
  }
}
