#include <bits/stdc++.h>
inline bool scan_d(int &num) {
  char in;
  bool IsN = false;
  in = getchar();
  if (in == EOF) return false;
  while (in != '-' && (in < '0' || in > '9')) in = getchar();
  if (in == '-') {
    IsN = true;
    num = 0;
  } else
    num = in - '0';
  while (in = getchar(), in >= '0' && in <= '9') {
    num *= 10, num += in - '0';
  }
  if (IsN) num = -num;
  return true;
}
inline bool scan_lf(double &num) {
  char in;
  double Dec = 0.1;
  bool IsN = false, IsD = false;
  in = getchar();
  if (in == EOF) return false;
  while (in != '-' && in != '.' && (in < '0' || in > '9')) in = getchar();
  if (in == '-') {
    IsN = true;
    num = 0;
  } else if (in == '.') {
    IsD = true;
    num = 0;
  } else
    num = in - '0';
  if (!IsD) {
    while (in = getchar(), in >= '0' && in <= '9') {
      num *= 10;
      num += in - '0';
    }
  }
  if (in != '.') {
    if (IsN) num = -num;
    return true;
  } else {
    while (in = getchar(), in >= '0' && in <= '9') {
      num += Dec * (in - '0');
      Dec *= 0.1;
    }
  }
  if (IsN) num = -num;
  return true;
}
using namespace std;
const int maxn = 4e5 + 10;
char s[maxn];
bool vis[maxn];
vector<int> pos[26];
int main() {
  int n, m;
  while (~scanf("%d%d", &n, &m)) {
    memset(vis, false, sizeof(vis));
    for (int i = 0; i < 26; i++) pos[i].clear();
    scanf("%s", s);
    for (int i = 0; i < n; i++) {
      pos[s[i] - 'a'].push_back(i);
    }
    for (int i = 0; i < 26; i++) {
      int len = pos[i].size();
      for (int j = 0; j < len; j++) {
        if (m > 0) {
          m--;
          vis[pos[i][j]] = true;
        } else
          break;
      }
      if (m == 0) break;
    }
    for (int i = 0; i < n; i++) {
      if (!vis[i]) printf("%c", s[i]);
    }
    puts("");
  }
  return 0;
}
