#include <bits/stdc++.h>
#include <cstdint>
#include <iomanip>
#define PowerUp ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(0);
#define BattleMode ll t;cin>>t;while(t--)
#define Thor solve();
#define Thunder if(t>0){cout<<line;}
#define ll long long
#define line "\n"
#define line3 cout<<line;
#define stop int abnmj; cin>>abnmj;
#define tap "\t"
#define loop(end,char) for(ll char=0;char<end;char++)
#define loopr(end,char) for(int char=end-1;char>=0;char--)
#define arrin(name) loop(name.size(),p){cin>>name[p];}
#define print(name) for(auto ik:name){cout<<ik<<" ";}
#define print2(name) for(auto ik:name){cout<<ik.first<<" "<<ik.second<<line;}
#define temple template<typename t,typename v>
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
using namespace std;
const double pi = acos(-1);
const ll MOD = 1e9 + 7;
const double EPS = 1e-7;
void solve()
{
ll n, x;
cin >> n >> x;
ll y=abs(x);
vector<ll> vec(n);
arrin(vec)
multiset<ll> sett;
for (int i = 0; i < n; i++)
sett.insert(vec[i]);
ll mini = LLONG_MAX;
ll num1, num2;
ll sub;
for (int i = 0; i < n; i++)
{
sett.erase(sett.find(vec[i]));
ll value=vec[i];
ll key1=value-y;
ll key2=value+y;
auto it1 = sett.lower_bound(key1);
if (it1!=sett.end())
{
sub=abs(value- *it1);
sub=abs(sub-y);
if ((sub==mini && num1+num2> value+ *it1 ) || sub<mini)
{
mini=sub;
num1=value;
num2= * it1;
}
}
if (it1!=sett.begin())
{
it1--;
sub=abs(value- *it1);
sub=abs(sub-y);
if ((sub==mini && num1+num2> value+ *it1 ) || sub<mini)
{
mini=sub;
num1=value;
num2= * it1;
}
}
it1 = sett.lower_bound(key2);
if (it1!=sett.end())
{
sub=abs(value- *it1);
sub=abs(sub-y);
if ((sub==mini && num1+num2> value+ *it1 ) || sub<mini)
{
mini=sub;
num1=value;
num2= * it1;
}
}
if (it1!=sett.begin())
{
it1--;
sub=abs(value- *it1);
sub=abs(sub-y);
if ((sub==mini && num1+num2> value+ *it1 ) || sub<mini)
{
mini=sub;
num1=value;
num2= * it1;
}
}
sett.insert(value);
}
if (x>=0)
cout<<max(num1,num2)<<" "<<min(num1,num2);
else
cout<<min(num1,num2)<<" "<<max(num1,num2);
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
freopen("error.txt", "w", stderr);
#endif
PowerUp
Thor
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxjc3RkaW50PgojaW5jbHVkZSA8aW9tYW5pcD4KI2RlZmluZSBQb3dlclVwIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7Y291dC50aWUoMCk7CiNkZWZpbmUgQmF0dGxlTW9kZSBsbCB0O2Npbj4+dDt3aGlsZSh0LS0pCiNkZWZpbmUgVGhvciBzb2x2ZSgpOwojZGVmaW5lIFRodW5kZXIgaWYodD4wKXtjb3V0PDxsaW5lO30KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsaW5lICJcbiIKI2RlZmluZSBsaW5lMyBjb3V0PDxsaW5lOwojZGVmaW5lIHN0b3AgaW50IGFibm1qOyBjaW4+PmFibm1qOwojZGVmaW5lIHRhcCAiXHQiCiNkZWZpbmUgbG9vcChlbmQsY2hhcikgZm9yKGxsIGNoYXI9MDtjaGFyPGVuZDtjaGFyKyspCiNkZWZpbmUgbG9vcHIoZW5kLGNoYXIpIGZvcihpbnQgY2hhcj1lbmQtMTtjaGFyPj0wO2NoYXItLSkKI2RlZmluZSBhcnJpbihuYW1lKSBsb29wKG5hbWUuc2l6ZSgpLHApe2Npbj4+bmFtZVtwXTt9CiNkZWZpbmUgcHJpbnQobmFtZSkgZm9yKGF1dG8gaWs6bmFtZSl7Y291dDw8aWs8PCIgIjt9CiNkZWZpbmUgcHJpbnQyKG5hbWUpIGZvcihhdXRvIGlrOm5hbWUpe2NvdXQ8PGlrLmZpcnN0PDwiICI8PGlrLnNlY29uZDw8bGluZTt9CiNkZWZpbmUgdGVtcGxlIHRlbXBsYXRlPHR5cGVuYW1lIHQsdHlwZW5hbWUgdj4KI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBhbGxyKHgpIHgucmJlZ2luKCkseC5yZW5kKCkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgZG91YmxlIHBpID0gYWNvcygtMSk7CmNvbnN0IGxsIE1PRCA9IDFlOSArIDc7CmNvbnN0IGRvdWJsZSBFUFMgPSAxZS03OwoKdm9pZCBzb2x2ZSgpCnsKICAgIGxsIG4sIHg7CiAgICBjaW4gPj4gbiA+PiB4OwogICAgbGwgeT1hYnMoeCk7CiAgICB2ZWN0b3I8bGw+IHZlYyhuKTsKICAgIGFycmluKHZlYykKICAgIG11bHRpc2V0PGxsPiBzZXR0OwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgc2V0dC5pbnNlcnQodmVjW2ldKTsKICAgIGxsIG1pbmkgPSBMTE9OR19NQVg7CiAgICBsbCBudW0xLCBudW0yOwogICAgbGwgc3ViOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIHNldHQuZXJhc2Uoc2V0dC5maW5kKHZlY1tpXSkpOwogICAgICAgIGxsIHZhbHVlPXZlY1tpXTsKICAgICAgICBsbCBrZXkxPXZhbHVlLXk7CiAgICAgICAgbGwga2V5Mj12YWx1ZSt5OwogICAgICAgIGF1dG8gaXQxID0gc2V0dC5sb3dlcl9ib3VuZChrZXkxKTsKICAgICAgICBpZiAoaXQxIT1zZXR0LmVuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgc3ViPWFicyh2YWx1ZS0gKml0MSk7CiAgICAgICAgICAgIHN1Yj1hYnMoc3ViLXkpOwogICAgICAgICAgICBpZiAoKHN1Yj09bWluaSAmJiBudW0xK251bTI+IHZhbHVlKyAqaXQxICkgfHwgc3ViPG1pbmkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1pbmk9c3ViOwogICAgICAgICAgICAgICAgbnVtMT12YWx1ZTsKICAgICAgICAgICAgICAgIG51bTI9ICogaXQxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpdDEhPXNldHQuYmVnaW4oKSkKICAgICAgICB7CiAgICAgICAgICAgIGl0MS0tOwogICAgICAgICAgICBzdWI9YWJzKHZhbHVlLSAqaXQxKTsKICAgICAgICAgICAgc3ViPWFicyhzdWIteSk7CiAgICAgICAgICAgIGlmICgoc3ViPT1taW5pICYmIG51bTErbnVtMj4gdmFsdWUrICppdDEgKSB8fCBzdWI8bWluaSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWluaT1zdWI7CiAgICAgICAgICAgICAgICBudW0xPXZhbHVlOwogICAgICAgICAgICAgICAgbnVtMj0gKiBpdDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaXQxID0gc2V0dC5sb3dlcl9ib3VuZChrZXkyKTsKICAgICAgICBpZiAoaXQxIT1zZXR0LmVuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgc3ViPWFicyh2YWx1ZS0gKml0MSk7CiAgICAgICAgICAgIHN1Yj1hYnMoc3ViLXkpOwogICAgICAgICAgICBpZiAoKHN1Yj09bWluaSAmJiBudW0xK251bTI+IHZhbHVlKyAqaXQxICkgfHwgc3ViPG1pbmkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1pbmk9c3ViOwogICAgICAgICAgICAgICAgbnVtMT12YWx1ZTsKICAgICAgICAgICAgICAgIG51bTI9ICogaXQxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpdDEhPXNldHQuYmVnaW4oKSkKICAgICAgICB7CiAgICAgICAgICAgIGl0MS0tOwogICAgICAgICAgICBzdWI9YWJzKHZhbHVlLSAqaXQxKTsKICAgICAgICAgICAgc3ViPWFicyhzdWIteSk7CiAgICAgICAgICAgIGlmICgoc3ViPT1taW5pICYmIG51bTErbnVtMj4gdmFsdWUrICppdDEgKSB8fCBzdWI8bWluaSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWluaT1zdWI7CiAgICAgICAgICAgICAgICBudW0xPXZhbHVlOwogICAgICAgICAgICAgICAgbnVtMj0gKiBpdDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc2V0dC5pbnNlcnQodmFsdWUpOwogICAgfQogICAgaWYgKHg+PTApCiAgICAgICAgY291dDw8bWF4KG51bTEsbnVtMik8PCIgIjw8bWluKG51bTEsbnVtMik7CiAgICBlbHNlCiAgICAgICAgY291dDw8bWluKG51bTEsbnVtMik8PCIgIjw8bWF4KG51bTEsbnVtMik7Cgp9CgppbnQgbWFpbigpCnsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGZyZW9wZW4oImVycm9yLnR4dCIsICJ3Iiwgc3RkZXJyKTsKI2VuZGlmCiAgICBQb3dlclVwCiAgICBUaG9yCn0K