#include <bits/stdc++.h>
using namespace std;
void longestSubarray(int* A, int N, int X)
{
int maxLen = 0;
int beginning = 0;
map<int, int> window;
int start = 0, end = 0;
for (; end < N; end++) {
window[A[end]]++;
auto minimum = window.begin()->first;
auto maximum = window.rbegin()->first;
if (maximum - minimum <= X) {
if (maxLen < end - start + 1) {
maxLen = end - start + 1;
beginning = start;
}
}
else {
while (start < end) {
window[A[start]]--;
if (window[A[start]] == 0) {
window.erase(window.find(A[start]));
}
start++;
auto minimum = window.begin()->first;
auto maximum = window.rbegin()->first;
if (maximum - minimum <= X)
break;
}
}
}
for (int i = beginning; i < beginning + maxLen; i++)
cout << A[i] << " ";
}
int main()
{
int size;
cin >> size;
int arr[size];
while (size--)
{
for (int i=0; i < size; i++){
int num;
cin >> num;
arr[i] = num;
}
}
int n = sizeof(arr) / sizeof(arr[0]);
longestSubarray(arr, n, 1);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdm9pZCBsb25nZXN0U3ViYXJyYXkoaW50KiBBLCBpbnQgTiwgaW50IFgpCnsKICAgIGludCBtYXhMZW4gPSAwOwogICAgaW50IGJlZ2lubmluZyA9IDA7CiAgICBtYXA8aW50LCBpbnQ+IHdpbmRvdzsKICAgIGludCBzdGFydCA9IDAsIGVuZCA9IDA7CiAgICBmb3IgKDsgZW5kIDwgTjsgZW5kKyspIHsKICAgICAgICB3aW5kb3dbQVtlbmRdXSsrOwogICAgICAgIGF1dG8gbWluaW11bSA9IHdpbmRvdy5iZWdpbigpLT5maXJzdDsKICAgICAgICBhdXRvIG1heGltdW0gPSB3aW5kb3cucmJlZ2luKCktPmZpcnN0OwogICAgICAgIGlmIChtYXhpbXVtIC0gbWluaW11bSA8PSBYKSB7CiAgICAgICAgICAgIGlmIChtYXhMZW4gPCBlbmQgLSBzdGFydCArIDEpIHsKICAgICAgICAgICAgICAgIG1heExlbiA9IGVuZCAtIHN0YXJ0ICsgMTsKICAgICAgICAgICAgICAgIGJlZ2lubmluZyA9IHN0YXJ0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBlbmQpIHsKICAgICAgICAgICAgICAgIHdpbmRvd1tBW3N0YXJ0XV0tLTsKICAgICAgICAgICAgICAgIGlmICh3aW5kb3dbQVtzdGFydF1dID09IDApIHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZXJhc2Uod2luZG93LmZpbmQoQVtzdGFydF0pKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN0YXJ0Kys7CiAgICAgICAgICAgICAgICBhdXRvIG1pbmltdW0gPSB3aW5kb3cuYmVnaW4oKS0+Zmlyc3Q7CiAgICAgICAgICAgICAgICBhdXRvIG1heGltdW0gPSB3aW5kb3cucmJlZ2luKCktPmZpcnN0OwogICAgICAgICAgICAgICAgaWYgKG1heGltdW0gLSBtaW5pbXVtIDw9IFgpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCBpID0gYmVnaW5uaW5nOyBpIDwgYmVnaW5uaW5nICsgbWF4TGVuOyBpKyspCiAgICAgICAgY291dCA8PCBBW2ldIDw8ICIgIjsKfQppbnQgbWFpbigpCnsKCWludCBzaXplOwoJY2luID4+IHNpemU7CglpbnQgYXJyW3NpemVdOwoJd2hpbGUgKHNpemUtLSkKCXsKCQlmb3IgKGludCBpPTA7IGkgPCBzaXplOyBpKyspewoJCQlpbnQgbnVtOwoJCQljaW4gPj4gbnVtOwoJCQlhcnJbaV0gPSBudW07CQoJCX0KCX0KICAgIGludCBuID0gc2l6ZW9mKGFycikgLyBzaXplb2YoYXJyWzBdKTsKICAgIGxvbmdlc3RTdWJhcnJheShhcnIsIG4sIDEpOwogCiAgICByZXR1cm4gMDsKfQ==