#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(a) a.begin(), a.end()
#define rep(i, x, n) for (int i = x; i <= n; ++i)
#define inp(a) freopen(a".inp", "r", stdin), freopen(a".out", "w", stdout)
const int N = 2e5 + 5;
int n, k;
long long a[N], pre[N];
int get(int xino){
int l = 0, r = xino;
while (r - l > 1){
int m = l + r >> 1;
if ((xino - m + 1) * a[xino] - (pre[xino] - pre[m - 1]) <= k) r = m;
else l = m;
}
return xino - r + 1;
}
int main(){
cin.tie(0) -> sync_with_stdio(0);
inp("hopqua");
cin >>n >>k;
rep(i, 1, n) cin >>a[i];
sort(a + 1, a + n + 1);
rep(i, 1, n) pre[i] = pre[i - 1] + a[i];
int cnt = 0, value = 0;
rep(i, 1, n){
int c = get(i);
if (c > cnt){
cnt = c; value = a[i];
}
}
cout <<cnt <<' ' <<value;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSByZXAoaSwgeCwgbikgZm9yIChpbnQgaSA9IHg7IGkgPD0gbjsgKytpKQojZGVmaW5lIGlucChhKSBmcmVvcGVuKGEiLmlucCIsICJyIiwgc3RkaW4pLCBmcmVvcGVuKGEiLm91dCIsICJ3Iiwgc3Rkb3V0KQoKY29uc3QgaW50IE4gPSAyZTUgKyA1OwoKCmludCBuLCBrOwpsb25nIGxvbmcgYVtOXSwgcHJlW05dOwoKaW50IGdldChpbnQgeGlubyl7CiAgICBpbnQgbCA9IDAsIHIgPSB4aW5vOwoKICAgIHdoaWxlIChyIC0gbCA+IDEpewogICAgICAgIGludCBtID0gbCArIHIgPj4gMTsKCiAgICAgICAgaWYgKCh4aW5vIC0gbSArIDEpICogYVt4aW5vXSAtIChwcmVbeGlub10gLSBwcmVbbSAtIDFdKSA8PSBrKSByID0gbTsKICAgICAgICBlbHNlIGwgPSBtOwogICAgfQoKICAgIHJldHVybiB4aW5vIC0gciArIDE7Cn0KaW50IG1haW4oKXsKICAgIGNpbi50aWUoMCkgLT4gc3luY193aXRoX3N0ZGlvKDApOwogICAgaW5wKCJob3BxdWEiKTsKCiAgICBjaW4gPj5uID4+azsKCiAgICByZXAoaSwgMSwgbikgY2luID4+YVtpXTsKCiAgICBzb3J0KGEgKyAxLCBhICsgbiArIDEpOwogICAgcmVwKGksIDEsIG4pIHByZVtpXSA9IHByZVtpIC0gMV0gKyBhW2ldOwoKICAgIGludCBjbnQgPSAwLCB2YWx1ZSA9IDA7CgogICAgcmVwKGksIDEsIG4pewogICAgICAgIGludCBjID0gZ2V0KGkpOwoKICAgICAgICBpZiAoYyA+IGNudCl7CiAgICAgICAgICAgIGNudCA9IGM7IHZhbHVlID0gYVtpXTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PGNudCA8PCcgJyA8PHZhbHVlOwoKICAgIHJldHVybiAwOwp9Cg==