import Foundation
func isValid(s: String, start: Int, end: Int) -> Bool {
  if start > end {
    return false
  }
  var left = start
  var right = end
  let S = s.characters.map { String($0) }
  while left < right {
    if S[left] != S[right] {
    	return false
    }
    left += 1
    right -= 1
  }
  return true
}
let str = String(readLine()!)
let count = str.characters.count
let isStrong = isValid(str, start: 0, end: (count - 1) / 2 - 1) && 
			   isValid(str, start: 0, end: count - 1) &&
               isValid(str, start: (count + 3) / 2 - 1, end: str.characters.count - 1)

print(isStrong ? "Yes" : "No")