#include<bits/stdc++.h>
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define int long long
#define pii pair<int,int>
#define ii int,int
#define fi first
#define se second
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define umap unordered_map
#define BIT(mask, i) ((mask >> i)&1)
#define ALL(c) c.begin(), c.end()
using namespace std;
mt19937 rd(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){
return l + rd()*rd()%(r-l+1);
}
const int N = 1e6+7;
const int M = 1e3+3;
const int MOD = 1e9+7;
const int inf = 3e18;
bool check(int l, int r, string a){
if(a[l] != a[r]) return false;
if(l >= r) return true;
return check(l+1, r-1, a);
}
void solve(){
string a;
cin >> a;
int n = a.size() - 1;
if(check(0, n, a)) cout << "YES";
else cout << "NO";
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpCgojZGVmaW5lIGludCBsb25nIGxvbmcKCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaSBpbnQsaW50CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgdW1hcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgQklUKG1hc2ssIGkpICgobWFzayA+PiBpKSYxKQojZGVmaW5lIEFMTChjKSBjLmJlZ2luKCksIGMuZW5kKCkKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgptdDE5OTM3IHJkKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CmludCByYW5kKGludCBsLCBpbnQgcil7CiAgICByZXR1cm4gIGwgKyByZCgpKnJkKCklKHItbCsxKTsKfQoKY29uc3QgaW50IE4gPSAxZTYrNzsKY29uc3QgaW50IE0gPSAxZTMrMzsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgaW5mID0gM2UxODsKCmJvb2wgY2hlY2soaW50IGwsIGludCByLCBzdHJpbmcgYSl7CiAgICBpZihhW2xdICE9IGFbcl0pIHJldHVybiBmYWxzZTsKICAgIGlmKGwgPj0gcikgcmV0dXJuIHRydWU7CiAgICByZXR1cm4gY2hlY2sobCsxLCByLTEsIGEpOwp9Cgp2b2lkIHNvbHZlKCl7CiAgICBzdHJpbmcgYTsKICAgIGNpbiA+PiBhOwogICAgaW50IG4gPSBhLnNpemUoKSAtIDE7CiAgICBpZihjaGVjaygwLCBuLCBhKSkgY291dCA8PCAiWUVTIjsKICAgIGVsc2UgY291dCA8PCAiTk8iOwp9CgpzaWduZWQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIHNvbHZlKCk7Cn0K