You are given a string s consisting of n lowercase Latin letters. Polycarp wants to remove exactly k characters (k ≤ n) from the string s. Polycarp uses the following algorithm k times:

  * if there is at least one letter 'a', remove the leftmost occurrence and stop the algorithm, otherwise go to next item; 
  * if there is at least one letter 'b', remove the leftmost occurrence and stop the algorithm, otherwise go to next item; 
  * ... 
  * remove the leftmost occurrence of the letter 'z' and stop the algorithm. 



This algorithm removes a single letter from the string. Polycarp performs this algorithm exactly k times, thus removing exactly k characters.

Help Polycarp find the resulting string.

Input

The first line of input contains two integers n and k (1 ≤ k ≤ n ≤ 4 ⋅ 10^5) — the length of the string and the number of letters Polycarp will remove.

The second line contains the string s consisting of n lowercase Latin letters.

Output

Print the string that will be obtained from s after Polycarp removes exactly k letters using the above algorithm k times.

If the resulting string is empty, print nothing. It is allowed to print nothing or an empty line (line break).

Examples

Input

15 3
cccaabababaccbc


Output

cccbbabaccbc


Input

15 9
cccaabababaccbc


Output

cccccc


Input

1 1
u


Output
#include <bits/stdc++.h>
using namespace std;
const long long int inf = 1000000007;
const long long int llinf = 9223372036854775807;
bool isodd(long long int n) {
  if (n & 1)
    return true;
  else
    return false;
}
long long int modpower(long long int x, long long int y, long long int p) {
  long long int res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = ((x % p) * (x % p)) % p;
  }
  return res % p;
}
long double power(long double x, long long int y) {
  long double temp;
  if (y == 0) return 1;
  temp = power(x, y / 2);
  if (y % 2 == 0)
    return temp * temp;
  else {
    if (y > 0)
      return x * temp * temp;
    else
      return (temp * temp) / x;
  }
}
bool ispoweroftwo(int x) { return x && (!(x & (x - 1))); }
bool isPower(long long int n) {
  if (n <= 1) return true;
  for (long long int x = 2; x <= sqrt(n); x++) {
    long long int p = x;
    while (p <= n) {
      p *= x;
      if (p == n) return true;
    }
  }
  return false;
}
bool isPower(int x, int y) {
  long long int res1 = log(y) / log(x);
  long double res2 = log(y) / log(x);
  return (res1 == res2);
}
long long int gcd(long long int a, long long int b) {
  if (a == 0 || b == 0) return 0;
  if (a == b) return a;
  if (a > b) return gcd(a - b, b);
  return gcd(a, b - a);
}
long long int gcdExtended(long long int a, long long int b, long long int *x,
                          long long int *y) {
  if (a == 0) {
    *x = 0;
    *y = 1;
    return b;
  }
  long long int x1, y1;
  long long int gcdresult = gcdExtended(b % a, a, &x1, &y1);
  *x = y1 - (b / a) * x1;
  *y = x1;
  return gcdresult;
}
long long int gcdarr(vector<int> arr) {
  long long int result = arr[0];
  long long int n = arr.size();
  for (long long int i = 1; i < n; i++) result = gcd(arr[i], result);
  return result;
}
long long int modInverse(long long int a, long long int m) {
  if (gcd(a, m) != 1) return -1;
  long long int m0 = m;
  long long int y = 0, x = 1;
  if (m == 1) return 0;
  while (a > 1) {
    long long int q = a / m;
    long long int t = m;
    m = a % m, a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) x += m0;
  return x;
}
long long int lcm(long long int a, long long int b) {
  return (a * b) / gcd(a, b);
}
bool isPrime(long long int n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
bool isPerfect(long long int n) {
  long long int sum = 1;
  for (long long int i = 2; i * i <= n; i++)
    if (n % i == 0) sum = sum + i + n / i;
  if (sum == n && n != 1) return true;
  return false;
}
long long int reverseDigits(long long int num) {
  long long int rev_num = 0;
  while (num > 0) {
    rev_num = rev_num * 10 + num % 10;
    num = num / 10;
  }
  return rev_num;
}
string upperwhole(string s) {
  for (long long int i = 0; i < s.size(); i++) {
    s[i] = toupper(s[i]);
  }
  return s;
}
string lowerwhole(string s) {
  for (long long int i = 0; i < s.size(); i++) {
    s[i] = tolower(s[i]);
  }
  return s;
}
string changecasewhole(string s) {
  for (long long int i = 0; i < s.size(); i++) {
    if (isupper(s[i]))
      s[i] = tolower(s[i]);
    else
      s[i] = toupper(s[i]);
  }
  return s;
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  multimap<char, int> m;
  for (long long int i = 0; i < n; i++) {
    m.insert(pair<char, int>(s[i], i));
  }
  multimap<char, int>::iterator itr;
  for (itr = m.begin(); itr != m.end() && k > 0; itr++, k--) {
    s[itr->second] = '0';
  }
  for (long long int i = 0; i < n; i++) {
    if (s[i] != '0') cout << s[i];
  }
  cout << endl;
  return 0;
}
