#include <bits/stdc++.h>
using namespace std;
int getDiff(char a, char b) {
  if (a > b) swap(a, b);
  return min(b - a, (a - 'a') + 26 - (b - 'a'));
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n, p;
  cin >> n >> p;
  p--;
  string s;
  cin >> s;
  int res = 0, init = 0, notAligned = 0;
  for (int i = 0; i < s.size() / 2; i++) {
    init += getDiff(s[i], s[s.size() - i - 1]);
    notAligned += getDiff(s[i], s[s.size() - i - 1]) != 0;
  }
  if (notAligned == 0) {
    cout << 0 << "\n";
    return 0;
  }
  auto prev = [&](int ind) -> int {
    if (ind - 1 < 0) return s.size() - 1;
    return ind - 1;
  };
  auto next = [&](int ind) -> int { return (ind + 1) % s.size(); };
  auto inRange = [&](int l, int r, int ind) -> bool {
    if (l > r) {
      return ind <= r || ind >= l;
    } else {
      return ind >= l && ind <= r;
    }
  };
  auto getRes = [&](int l, int r) -> int {
    int side1, side2;
    if (l > r) {
      if (l <= p) {
        side1 = p - l;
        side2 = s.size() - p + r;
      } else {
        side1 = abs(r - p);
        side2 = (s.size() - l) + r;
      }
    } else {
      side1 = r - p;
      side2 = p - l;
    }
    return min(side1, side2) * 2 + max(side1, side2);
  };
  int r = p, l = p;
  notAligned -= getDiff(s[l], s[s.size() - l - 1]) != 0;
  while (prev(l) != p && notAligned != 0) {
    l = prev(l);
    if (!inRange(next(l), r, s.size() - l - 1))
      notAligned -= getDiff(s[l], s[s.size() - l - 1]) != 0;
  }
  assert(notAligned == 0);
  res = init + getRes(l, r);
  while (next(r) != p) {
    r = next(r);
    if (l == r) {
      l = next(l);
    }
    while ((getDiff(s[l], s[s.size() - l - 1]) == 0 ||
            inRange(next(l), r, s.size() - l - 1)) &&
           next(l) != r) {
      l = next(l);
    }
    if (inRange(l, r, p)) res = min(res, init + getRes(l, r));
  }
  cout << res << "\n";
  return 0;
}
