#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+5;
int n,m;
long long a[MAXN],sum[MAXN];
bool check(long long mid,long long k){
long long x=lower_bound(a+1,a+n+1,mid)-a;
if(sum[n]-sum[x-1]-mid*(n-x+1)<=(k-1)*(m-mid))return true;
else return false;
}
int main(){
freopen("qiju.in","r",stdin);
freopen("qiju.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];
for(int k=1;k<=n;k++){
long long l=0;
long long r=m;
while(l<r){
long long mid=(l+r)/2;
if(check(mid,k))r=mid;
else l=mid+1;
}
cout<<l<<' ';
}
return 0;
}