#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie();
  string w;
  cin >> w;
  vector<pair<int, char> > vec;
  if (w.size() == 1) {
    cout << w << w << endl;
    return 0;
  }
  if (w[0] == w[w.size() - 1]) {
    for (int i = 0, j = w.size() - 1; i < w.size() / 2; i++, j--) {
      if (w[i] == w[j]) {
        continue;
      } else {
        vec.push_back(make_pair(j + 1, w[i]));
        j++;
      }
    }
    if (vec.size() == 0) {
      for (int i = 0; i < w.size(); i++) {
        if (i == w.size() / 2) {
          cout << w[i];
        }
        cout << w[i];
      }
      return 0;
    } else if (vec.size() == 1) {
      for (int i = 0; i < w.size(); i++) {
        if (i == vec[0].first) {
          cout << vec[0].second;
        }
        cout << w[i];
      }
      return 0;
    } else {
      vec.clear();
      for (int i = 0, j = w.size() - 1; i < w.size() / 2; i++, j--) {
        if (w[i] == w[j]) {
          continue;
        } else {
          vec.push_back(make_pair(i - 1, w[j]));
          i--;
        }
      }
      if (vec.size() > 1) {
        cout << "NA" << endl;
        return 0;
      } else if (vec.size() == 1) {
        for (int i = 0; i < w.size(); i++) {
          if (i == vec[0].first) {
            cout << w[i] << vec[0].second;
            continue;
          }
          cout << w[i];
        }
        return 0;
      }
    }
  } else {
    bool b = true;
    string s = "", s1 = "";
    s = w + w[0];
    s1 = w[w.size() - 1] + w;
    for (int i = 0, j = s.size() - 1; i < s.size() / 2; i++, j--) {
      if (s[i] != s[j]) {
        b = false;
        break;
      }
    }
    if (b) {
      cout << s << endl;
      return 0;
    }
    b = true;
    for (int i = 0, j = s1.size() - 1; i < s1.size() / 2; i++, j--) {
      if (s1[i] != s1[j]) {
        b = false;
        break;
      }
    }
    if (b) {
      cout << s1 << endl;
      return 0;
    }
    cout << "NA" << endl;
    return 0;
  }
  return 0;
}
