#include<iostream>
#include<vector>
#include<set>
using namespace std;
vector<pair<int, int>> syote;
vector<int> lista(2023, 0); //tulostettava lista
set<int> ll; //jaljella olevat luvut
int kasitellyt_luvut = 0;
vector<int> valiaika; //valiaikainen lista johon tallentetaan luvut
int summa = 0; //valiaikaine haussa kaytettava summa
int mika = 0;
int tavoite = 0;
bool loytynyt = false;
void haku(int k) {
if (loytynyt == true) return;
else if (valiaika.size() == 43) {
if (summa == syote[mika].first && loytynyt == false) {
for (int i = 0; i < valiaika.size(); i++) {
lista[i] = valiaika[i];
ll.insert(valiaika[i]);
kasitellyt_luvut++;
}
loytynyt = true;
}
}
if (k == 2023) {
return;
}
else {
haku(k+1);
valiaika.push_back(k);
summa += k + 1;
haku(k + 1);
summa -= k + 1;
valiaika.pop_back();
}
}
int main() {
for (int i = 0; i < 100; i++) {
int x;
cin >> x;
syote.push_back({ x, i });
}
haku(1);
/*for (int i = 0; i < 100; i++) {
mika = i;
tavoite = syote[i].first + 1;
haku(1);
}*/
for (int i = kasitellyt_luvut; i < 2023; i++) {
for (int j = 1; j <= 2023; j++) {
if (ll.count(j) == 0) {
lista[i] = j;
ll.insert(j);
break;
}
}
}
for (int i : lista) cout << i << " ";
}