#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 100010;
int stmin[N][32], stmax[N][32];
int a[N];
int ans = 0x3f3f3f3f;
int n, k;
int qmax(int l, int r) {
int len = log2(r - l + 1);
return max(stmax[l][len], stmax[r - (1 << len) + 1][len]);
}
int qmin(int l, int r) {
int len = log2(r - l + 1);
return min(stmin[l][len], stmin[r - (1 << len) + 1][len]);
}
bool check(int x) {
int kk = 0;
for (int i = 1; i <= n - x + 1; i++) {
if (qmax(i, i + x - 1) - qmin(i, i + x - 1) >= ans)kk++;
if (kk == k)return true;
}
return false;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--) {
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> stmin[i][0];
a[i] = stmin[i][0];
stmax[i][0] = stmin[i][0];
}
for (int j = 1; (1 << j) <= n; j++) { //总包含数字不超过n
for (int i = 1; i + (1 << j) - 1 <= n; i++) { //确保是子区间,不越界
stmin[i][j] = min(stmin[i][j - 1], stmin[i + (1 << j - 1)][j - 1]);
stmax[i][j] = max(stmax[i][j - 1], stmax[i + (1 << j - 1)][j - 1]);
}
}
for (int i = 1; i <= k; i++) {
ans = min(qmax(i, n - k + i) - qmin(i, n - k + i), ans);
}
int l = 1, r = n - k + 1;
while (l <= r) {
int mid = (l + r) >> 1 ;
if (check(mid))r = mid - 1;
else l = mid + 1;
}
cout << ans << ' ' << l << endl;
}
}