Mike has a string *s* consisting of only lowercase English letters. He wants to change exactly one character from the string so that the resulting one is a palindrome. 

A palindrome is a string that reads the same backward as forward, for example strings "z", "aaa", "aba", "abccba" are palindromes, but strings "codeforces", "reality", "ab" are not.
The first and single line contains string *s* (1 ≤ |*s*| ≤ 15).
none
abccaa
YES
abbcca
NO
abcda
YES
kyw
YES
fccf
NO
mnlm
YES
gqrk
NO
glxlg
YES
czhfc
YES
broon
NO
rmggmr
NO
wvxxzw
YES
ukvciu
NO
vrnwnrv
YES
vlkjkav
YES
guayhmg
NO
lkvhhvkl
NO
ffdsslff
YES
galjjtyw
NO
uosgwgsou
YES
qjwmjmljq
YES
ustrvrodf
NO
a
YES
qjfyjjyfjq
NO
ysxibbixsq
YES
howfslfwmh
NO
ekhajrjahke
YES
ucnolsloncw
YES
jrzsfrrkrtj
NO
typayzzyapyt
NO
uwdhkzokhdwu
YES
xokxpyyuafij
NO
eusneioiensue
YES
fuxpuajabpxuf
YES
guvggtfhlgruy
NO
cojhkhxxhkhjoc
NO
mhifbmmmmbmihm
YES
kxfqqncnebpami
NO
scfwrjevejrwfcs
YES
thdaonpepdoadht
YES
jsfzcbnhsccuqsj
NO
nn
NO
nm
YES
jdj
YES
bbcaa
NO
abcde
NO
abcdf
NO
aa
NO
abecd
NO
abccacb
NO
aabc
NO
anpqb
NO
c
YES
abcdefg
NO
aanbb
NO
aabbb
NO
aaabbab
NO
ab
YES
aabbc
NO
ecabd
NO
abcdrty
NO
abcdmnp
NO
bbbbbb
NO
abcxuio
NO
abcdabcde
NO
abcxpoi
NO
aba
YES
aacbb
NO
abcedca
NO
abcdd
NO
abbcs
NO
aaabccc
NO
paxkxbq
NO
z
YES
b
YES
abcdefghi
NO
abcqr
NO
abcdc
NO
abcb
NO
aabcd
NO
abbba
YES
aaabbb
NO
bb
NO
aaacbbb
NO
abbzcca
NO
abxab
NO
bbb
YES
abcrtyu
NO
cbacb
NO
acbb
NO
ww
NO
aaaaaa
NO
jizzz
NO
aaakcba
NO
acbak
NO
bddeffd
NO
aaa
YES
afghqwe
NO
abcdfga
NO
#include <bits/stdc++.h>
#include<string.h>
#include<set>
#include<windows.h>
#define ll long long
using namespace std;

int main()
{
    string n;
    cin>>n;
    int s=0;
    for(int i=0;i<n.size()/2;i++){
        if(n[i]!=n[n.size()-1-i]) s++;
    }
    if(s==0 || s==1 && n.size()%2==0) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}
