#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
#include<iostream>
#include<string>
#include<queue>
#include <fstream>
using namespace std;
#define ll long long
vector<int>v;
struct el {
int idx, val;
el(int _idx, int _val) {
idx = _idx;
val = _val;
}
bool operator<(const el&r)const {
if (val != r.val)
return val > r.val;
return idx < r.idx;
}
};
int oo = 1e9;
int main() {
int k;
scanf("%d", &k);
vector<ifstream> files(k);
priority_queue<el>pq;
for (int i = 0,x; i < k; ++i) {
files[i].open("file" + to_string(i) + ".txt");
if (files[i] >> x)
pq.push(el(i, x));
}
int count = 0;
int total = 50;
while (!pq.empty() && count!=total) {
int srs = pq.top().idx;
int x = pq.top().val;
pq.pop();
cout << x << endl;
count++;
while (files[srs] >> x && count!=total) {
if (pq.empty() || pq.top().val>x) {
cout << x << endl;
count++;
}
else {
pq.push(el(srs, x));
break;
}
}
}
for (int i = 0;i < k; ++i)
files[i].close();
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxhbGdvcml0aG0+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlIDxmc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwp2ZWN0b3I8aW50PnY7CnN0cnVjdCBlbCB7CglpbnQgaWR4LCB2YWw7CgllbChpbnQgX2lkeCwgaW50IF92YWwpIHsKCQlpZHggPSBfaWR4OwoJCXZhbCA9IF92YWw7Cgl9Cglib29sIG9wZXJhdG9yPChjb25zdCBlbCZyKWNvbnN0IHsKCQlpZiAodmFsICE9IHIudmFsKQoJCQlyZXR1cm4gdmFsID4gci52YWw7CgkJcmV0dXJuIGlkeCA8IHIuaWR4OwoJfQp9OwppbnQgb28gPSAxZTk7CmludCBtYWluKCkgewoJaW50IGs7CglzY2FuZigiJWQiLCAmayk7Cgl2ZWN0b3I8aWZzdHJlYW0+IGZpbGVzKGspOwoJcHJpb3JpdHlfcXVldWU8ZWw+cHE7Cglmb3IgKGludCBpID0gMCx4OyBpIDwgazsgKytpKSB7CgkJZmlsZXNbaV0ub3BlbigiZmlsZSIgKyB0b19zdHJpbmcoaSkgKyAiLnR4dCIpOwoJCWlmIChmaWxlc1tpXSA+PiB4KQoJCQlwcS5wdXNoKGVsKGksIHgpKTsKCX0KCWludCBjb3VudCA9IDA7CglpbnQgdG90YWwgPSA1MDsKCXdoaWxlICghcHEuZW1wdHkoKSAmJiBjb3VudCE9dG90YWwpIHsKCQlpbnQgc3JzID0gcHEudG9wKCkuaWR4OwoJCWludCB4ID0gcHEudG9wKCkudmFsOwoJCXBxLnBvcCgpOwoJCWNvdXQgPDwgeCA8PCBlbmRsOwoJCWNvdW50Kys7CgkJd2hpbGUgKGZpbGVzW3Nyc10gPj4geCAmJiBjb3VudCE9dG90YWwpIHsKCQkJaWYgKHBxLmVtcHR5KCkgfHwgcHEudG9wKCkudmFsPngpIHsKCQkJCWNvdXQgPDwgeCA8PCBlbmRsOwoJCQkJY291bnQrKzsKCQkJfQoJCQllbHNlIHsKCQkJCXBxLnB1c2goZWwoc3JzLCB4KSk7CgkJCQlicmVhazsKCQkJfQoJCX0KCX0KCglmb3IgKGludCBpID0gMDtpIDwgazsgKytpKQoJCWZpbGVzW2ldLmNsb3NlKCk7Cn0KCg==