#include<iostream>
#include<queue>
#include<algorithm>
#include<functional>
using namespace std;
int main()
{
priority_queue<int, vector<int> , greater<int> > minheap;
int n,k,tmpInput;
cin >> n >>k;
for (int i = 0; i < n; i++)
{
cin >> tmpInput;
minheap.push(tmpInput);
}
int minusNum = 0,tmpMin=0;
for (int i = 0; i < k; i++)
{
tmpMin = 0;
while (!minheap.empty() && tmpMin==0)
{
tmpMin = minheap.top() - minusNum;
minheap.pop();
}
minusNum += tmpMin;
cout << tmpMin << endl;
}
}