#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;
    }
}