#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define dwn(i,a,b) for(int i=(a);i>=(b);i--)
int a[N];
int n;
int q1[N],q2[N];
int ask(int L)
{
int h1,h2;h1=h2=0;int t1,t2;t1=t2=0;
int mm=1e9;
memset(q1,0,sizeof q1);
memset(q2,0,sizeof q2);
rep(i,1,n)
{
while(h2<t2&&a[i]>a[q2[t2]])t2--;
q2[t2++]=i;
while(h2<=t2&&q2[h2]+L<=i)h2++;
while(h1<t1&&a[i]<a[q1[t1]])t1--;
q1[t1++]=i;
while(h1<=t1&&q1[h1]+L<=i)h1++;
if(i>=L)mm=min(mm,a[q2[h2]]-a[q1[h1]]);
}
return mm;
}
int erfen(int L,int R,int min_x)
{
int l=L,r=R;
while(l<r)
{
int mid=l+r>>1;
int val=ask(mid);
if(val!=min_x)
{
l=mid+1;
}
else r=mid;
}
return l;
}
int main()
{
int T;scanf("%d",&T);
while(T--)
{
int k;
int min_x;
scanf("%d%d",&n,&k);
rep(i,1,n)cin>>a[i];
min_x=ask(n-k+1);
int l_min=erfen(1,n-k+1,min_x);
cout<<min_x<<" "<<l_min<<endl;
}
}