#include <bits/stdc++.h>
using namespace std;
int main(){
	int n, k;
	cin >> n >> k;
	int a[n];
	for(int i = 0; i < n; i++){
		cin >> a[i];
	}
	sort(a, a+n);
	int mn = a[n-1];
	if(a[n-1] == 0){
		if(k != 0) cout << -1 << endl;
		else{
		for(int i = 0; i < n; i++) cout << 0 << " ";}
		return 0;
	}
	if(n == 1){
		if(a[0] == 0 && k == 0) cout << 0 << endl;
		else if(a[0] != 0 && k) cout << a[0] << endl;
		else cout << -1 << endl;
		return 0;
	}
	for(int i = n-1; i > 1; i--){
		mn = min(mn, a[i]);
		if(a[i-1] <= n-i && mn > 0){
			if(n-i == k){
				for(int j = i-1; j > -1; j--) cout << a[j] << " ";
				for(int j = n-1; j > i-1; j--) cout << a[j] << " ";
				
				return 0;
			}
		}
		mn--;
	}
	cout << -1 << 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... |