// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	var s = input.split("\n");

    if( isK( s ) ){
      var s2 = s.substr( 0, ( s.length - 1 ) / 2 );
      if( isK( s2 ) ){
        var s3 = s.substr( ( s.length + 3 ) / 2 );
        if( isK( s3 ) ){
          console.log( 'Yes' );
        }else{
          console.log( 'No' );
        }
      }else{
        console.log( 'No' );
      }
    }else{
      console.log( 'No' );
    }
}

function isK( S ){
  var l = S.length;
  var n = Math.round( l / 2 );
  var r = 1;
  for( var i = 0; i <= n && r == 1; i ++ ){
    var c1 = S.charAt( i );
    var c2 = S.charAt( l - 1 - i );
    r = ( c1 == c2 ? 1 : 0 );
  }
  
  return r;
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
