#include <bits/stdc++.h>
using namespace std;
long long int fact[200003];
long long int gcd(long long int a, long long int b) {
  long long int x = max(a, b);
  long long int y = min(a, b);
  if (x % y == 0) return y;
  return gcd(y, x % y);
}
void init() {
  fact[0] = 1;
  for (int i = 1; i < 200003; i++) {
    fact[i] = (fact[i - 1] * i) % 1000000007;
  }
}
long long int modpow(long long int x, long long int n) {
  if (n == 0) return 1;
  long long int v = ((x % 1000000007) * (x % 1000000007)) % 1000000007;
  if (n % 2 == 0) return modpow(v, n / 2);
  return (x * modpow(v, (n - 1) / 2)) % 1000000007;
}
long long int invmod(long long int a) { return modpow(a, 1000000007 - 2); }
long long int ncr(long long int n, long long int r) {
  return (((fact[n] * invmod(fact[r])) % 1000000007) * invmod(fact[n - r])) %
         1000000007;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  string s;
  cin >> s;
  int ct = 0;
  int n = s.size();
  for (int i = 0; i < (s.size() / 2); i++) {
    if (s[i] != s[n - 1 - i]) ct++;
  }
  if (ct == 1)
    cout << "YES";
  else if (ct == 0 && (n % 2 == 1))
    cout << "YES";
  else
    cout << "NO";
}
