#include <bits/stdc++.h>
bool judge1(char *arr, int len) {
  int i;
  for (i = 0; i < len; i++) {
    if (arr[i] != arr[len - i - 1]) return false;
  }
  return true;
}
bool judge(char *arr, int len) {
  int i;
  for (i = 0; i <= len / 2 + 1; i++) {
    if (arr[i] != arr[len - i]) return false;
  }
  return true;
}
void shuchu(int len, char *zuhe) {
  int l;
  for (l = 0; l <= len; l++) {
    printf("%c", zuhe[l]);
  }
}
bool xiangtong(char *arr, int len) {
  int i;
  for (i = 0; i < len - 1; i++) {
    if (arr[i] != arr[i + 1]) return false;
  }
  return true;
}
int main() {
  char str[15];
  char zuhe[20];
  scanf("%s", str);
  int len = strlen(str);
  int i;
  if (judge1(str, len)) {
    if (len % 2 == 0) {
      int j;
      for (j = 0; j < len; j++) {
        if (j == len / 2) printf("a");
        printf("%c", str[j]);
      }
    } else {
      if (len == 1) {
        printf("%c%c", str[0], str[0]);
        return 0;
      }
      if (str[len / 2 + 1] == str[len / 2 - 1]) {
        int j;
        for (j = 0; j < len; j++) {
          if (j == len / 2) printf("%c", str[len / 2]);
          printf("%c", str[j]);
        }
      }
    }
    return 0;
  }
  int k, l, p = 0;
  for (k = 0; k < len; k++) {
    if (str[k] != str[len - k - 1]) {
      for (l = 0; l < len; l++) {
        zuhe[p] = str[l];
        if (l == k) {
          p++;
          zuhe[p] = str[len - k - 1];
        }
        p++;
      }
      if (judge(zuhe, len)) {
        shuchu(len, zuhe);
        return 0;
      } else {
        p = 0;
        for (l = 0; l < len; l++) {
          if (l == k) {
            zuhe[p] = str[len - k - 1];
            p++;
          }
          zuhe[p] = str[l];
          p++;
        }
        if (judge(zuhe, len)) {
          shuchu(len, zuhe);
          return 0;
        } else {
          p = 0;
          for (l = 0; l < len; l++) {
            if (l == len - k - 1) {
              zuhe[p] = str[k];
              p++;
            }
            zuhe[p] = str[l];
            p++;
          }
          if (judge(zuhe, len)) {
            shuchu(len, zuhe);
            return 0;
          } else {
            p = 0;
            for (l = 0; l < len; l++) {
              zuhe[p] = str[l];
              if (l == len - k - 1) {
                p++;
                zuhe[p] = str[k];
              }
              p++;
            }
            if (judge(zuhe, len)) {
              shuchu(len, zuhe);
              return 0;
            } else {
              printf("NA");
              return 0;
            }
          }
        }
      }
    }
  }
}
