#include <limits>
#include <iostream>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <map>
#include <queue>

static const int MOD = 1000000007;
using ll = long long;
using u32 = unsigned;
using namespace std;

template<class T>
constexpr T INF = ::numeric_limits<T>::max() / 32 * 15 + 208;

int main() {
    string s;
    cin >> s;
    if(s.length()%2){
        cout << "NO\n";
        return 0;
    }else if(s.substr(0, s.length()/2) == s.substr(s.length()/2, s.length()/2)){
        cout << "YES\n";
        return 0;
    }else {
        cout << "NO\n";
    }
    return 0;
}