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
//package CFJUNE21;

import java.io.*;
import java.util.*;

public class Q2{

    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader() {
            reader = new BufferedReader(new InputStreamReader(System.in), 32768);
            tokenizer = null;
        }

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(System.in), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }
        public char nextChar() {
            return next().charAt(0);
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public int[] nextIntArr(int n) {
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = this.nextInt();
            }
            return arr;
        }

        public Integer[] nextIntegerArr(int n) {
            Integer[] arr = new Integer[n];
            for (int i = 0; i < n; i++) {
                arr[i] = new Integer(this.nextInt());
            }
            return arr;
        }

        public int[][] next2DIntArr(int n, int m) {
            int[][] arr = new int[n][m];
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    arr[i][j] = this.nextInt();
                }
            }
            return arr;
        }

        public int[] nextSortedIntArr(int n) {
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = this.nextInt();
            }
            Arrays.sort(arr);
            return arr;
        }

        public long[] nextLongArr(int n) {
            long[] arr = new long[n];
            for (int i = 0; i < n; i++) {
                arr[i] = this.nextLong();
            }
            return arr;
        }

        public char[] nextCharArr(int n) {
            char[] arr = new char[n];
            for (int i = 0; i < n; i++) {
                arr[i] = this.nextChar();
            }
            return arr;
        }
    }

    public static void main(String[] args) {

        InputReader in = new InputReader();
        int N = in.nextInt();
        int K = in.nextInt();
        String str=in.next();

        if(str.length()<=K)
            return;

        HashMap<Character,Integer> map=new HashMap<>();

        for (int i = 0; i < str.length(); i++) {

            if(!map.containsKey(str.charAt(i)))
                map.put(str.charAt(i),1);
            else
                map.put(str.charAt(i),map.get(str.charAt(i))+1);
        }

        int num=0,ch=0,known=0,e=0;
        for(int i='a';i<='z';i++){

            if(K<=0)
                break;

            if(map.containsKey((char)i)){
                int val=map.get((char)i);
                if(K-val>=0){

                    ch=i;
                    K=K-val;
                    num=0;
                }else{
                    known=i;
                    num=val-K;
                    K=0;
                    e=val;
                }

            }

        }

        int flag=0;

        for(int i=0; i<N && num==0 ;i++){
            flag=1;
            int temp=str.charAt(i);
            if(temp<=ch )
                continue;

                System.out.print(str.charAt(i));


        }

        if(flag==1){
            return;
        }

        for(int i=0; i<N  ;i++){

           // System.out.println("dsd");
            int temp=str.charAt(i);

            if(temp==known && num!=e ){
                num++;
                continue;
            }

            if(temp<=ch )
                continue;

                System.out.print(str.charAt(i));




        }






    }

    static int upperBound(long[] list, long val) {
        int count = list.length - 1, first = 0, it = 0, step = 0;

        while (count > 0) {
            it = first;
            step = count / 2;
            it += step;
            if (!(val < list[it])) {
                first = it + 1;
                it++;
                count -= step + 1;
            } else {
                count = step;
            }
        }
        return first;
    }

}
