#include <bits/stdc++.h>
using namespace std;
double dist(double a, double b) { return sqrtl(a * a + b * b); }
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
string s;
string s1, s2;
int main() {
  int len, res = 1, lpal = 0, rpal = 0, j = 1, flag = 0;
  cin >> s;
  len = s.length();
  for (int k = 0; k < len; k++) {
    if (flag) break;
    for (int q = 0; q <= len; q++) {
      if (q == 0)
        s1 = s[k] + s.substr(0, len);
      else if (q == len)
        s1 = s.substr(0, len) + s[k];
      else
        s1 = s.substr(0, q) + s[k] + s.substr(q, len);
      len = s1.length();
      for (int i = 1; i < len; i++) {
        if (((i - j) >= 0) && ((i + j) <= len) &&
            (s1[i - j] == s1[i + j - 1])) {
          while (s1[i - j] == s1[i + j - 1]) {
            j++;
          }
          j--;
          if (2 * j > res) {
            res = 2 * j;
            lpal = i - j;
            rpal = i + j - 1;
          }
        }
        j = 1;
        if (((i - j) >= 0) && ((i + j) <= len) && (s1[i - j] == s1[i + j])) {
          while (s1[i - j] == s1[i + j]) {
            j++;
          }
          j--;
          if ((2 * j + 1) > res) {
            res = 2 * j + 1;
            lpal = i - j;
            rpal = i + j;
          }
        }
        j = 1;
      }
      if (((rpal - lpal + 1) == len)) {
        cout << s1;
        cout << "\n";
        flag = 1;
        break;
      }
    }
  }
  if (flag == 0) cout << "NA\n";
  return 0;
}
