//采用优先队列,底层原理是大根堆
#include "stdio.h"
#include "queue"
using namespace std;

int main(){
    int n,m;//n为镇上人数,m为要找的大富翁数
    priority_queue<int> myPQueue;
    int temp;
    while(scanf("%d%d",&n,&m) != EOF){
        if(n==0 && m==0)
            break;
        for(int i=0; i<n; ++i){
            scanf("%d",&temp);
            myPQueue.push(temp);
        }
        if(n >= m){
        	for(int i=0; i<m; ++i){
        		printf("%d ",myPQueue.top());
                myPQueue.pop();
        	}
		}else{
			for(int i=0; i<n; ++i){
				printf("%d ",myPQueue.top());
				myPQueue.pop();
			}
		}
        printf("\n");
    }
}