#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
using namespace std;
bool check_pal(string s) {
  long long n = s.size();
  for (long long i = 0, j = n - 1; i <= j; i++, j--) {
    if (s[i] != s[j]) return 0;
  }
  return 1;
}
int main() {
  long long i, j, k, x, y, z, l, r, p, q;
  long long n, m;
  string s, s1, s2;
  cin >> s;
  n = s.size();
  if (s[0] != s[n - 1]) {
    s1 = s[n - 1] + s;
    x = check_pal(s1);
    s2 = s + s[0];
    y = check_pal(s2);
    if (x)
      cout << s1 << endl;
    else if (y)
      cout << s2 << endl;
    else
      cout << "NA" << endl;
  } else {
    x = check_pal(s);
    if (x) {
      if (n % 2 == 0) {
        for (long long i = 0; i < n / 2; i++) cout << s[i];
        cout << 'a';
        for (i = n / 2; i < n; i++) cout << s[i];
      } else {
        for (long long i = 0; i < n / 2; i++) cout << s[i];
        cout << s[n / 2];
        for (i = n / 2; i < n; i++) cout << s[i];
      }
    } else {
      s1 = s;
      for (i = 0, j = n - 1; i <= j; i++, j--) {
        if (s[i] != s[j]) {
          s.insert(j + 1, 1, s[i]);
          break;
        }
      }
      for (i = 0, j = n - 1; i <= j; i++, j--) {
        if (s1[i] != s1[j]) {
          s1.insert(i, 1, s1[j]);
          break;
        }
      }
      x = check_pal(s);
      y = check_pal(s1);
      if (x)
        cout << s << endl;
      else if (y)
        cout << s1 << endl;
      else
        cout << "NA" << endl;
    }
  }
  return 0;
}
