#include <bits/stdc++.h>
using namespace std;
#define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define N lli(7e5)
#define MOD lli(1e9 + 7)
#define heps(v) v.begin(), v.end()
typedef long long int lli;
typedef vector<lli> vlli;
typedef pair<lli, lli> plli;
typedef vector<plli> vplli;
typedef pair<lli, plli> pplli;
typedef vector<pplli> vpplli;
lli n,m,k,q,t;
vlli vect;
lli ilksir[N];
lli sildiz[N];
int main()
{
    fast_io
    cin >> n >> m;
    lli basbir = 0;
    vlli cev;
    for(lli i = 0;i<n;i++){
        cin >> k;
        if(k > 0)
            vect.push_back(k);
        else{
            cev.push_back(0);
            basbir++;
        }
    }
    sort(heps(vect));
    queue<lli> Q;
    lli susay = 0;
    lli subir = 0;
    for(lli say : vect){
        if(susay >= say){
            subir++;
        }else
            susay++;
    }
    lli ind = -1;
    for(lli i = 0;i<vect.size();i++){
        if(subir >= sildiz[i]){
            basbir += sildiz[i];
            subir -= sildiz[i];
        }else{
            basbir += sildiz[i];
            subir = 0;
        }
        if(i + vect[i] < vect.size())
            sildiz[i + vect[i]]++;
        cev.push_back(vect[i]);
        //cout << i << " " << vect[i] << " " << basbir << " " << subir << endl;
        if(basbir + subir == n - m){
            ind = i;
            break;
        }
    }
    if(ind == -1){
        cout << "-1" << endl;
    }else{
        for(lli i = vect.size()-1;i>ind;i--)
            cout << vect[i] << " ";
        for(lli i = 0;i<cev.size();i++)
            cout << cev[i] << " ";
        
        cout << endl;
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |