#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; string s; string rev; int main(){ cin >> s; rev = s; reverse(rev.begin(), rev.end()); if (s == rev){ if (s.size() % 2){ for (int i = 0; i < s.size(); i++){ cout << s[i]; if (i == s.size() / 2){ cout << s[i]; } } cout << endl; return 0; } else{ for (int i = 0; i < s.size(); i++){ cout << s[i]; if (i == s.size() / 2-1){ cout << s[i]; } } cout << endl; return 0; } } else{ bool ok = false; int i = 0; int j = s.size()-1; int ind = 0; char so = 'a'; bool ng = false; while (i < j){ if (s[i] != s[j]){ if (ok){ ng = true; break; } ind = i; j--; so = s[j+1]; ok = true; continue; } i++; j--; } if (ng){ } else{ for (int i = 0; i < s.size(); i++){ if (ind == i){ cout << so; } cout << s[i]; } cout << endl; return 0; } } bool ok = false; int i = 0; int j = s.size() - 1; int ind = 0; char so = 'a'; bool ng = false; while (i < j){ if (s[i] != s[j]){ if (ok){ ng = true; break; } ind = j; i++; so = s[i-1]; ok = true; continue; } i++; j--; } if (ng){ puts("NA"); return 0; } for (int i = 0; i < s.size(); i++){ cout << s[i]; if (ind == i){ cout << so; } } cout << endl; return 0; }