#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
int n,p;
int *arr,*sumarr;
int sum,maxsum=0,countmax=0;
while(t--)
{
sum=0;
cin>>n>>p;
maxsum=0;
arr=new int[n];
sumarr=new int[n+1];
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
sumarr[0]=0;
for(int i=1;i<=n;i++)
{
sumarr[i]=arr[i-1]+sumarr[i-1];
}
for(int left=1;left<=n;left++)
{
for(int right=left;right<=n;right++)
{
sum=(sumarr[right]-sumarr[left-1])%p;
if(sum>maxsum)
{
maxsum=sum;
countmax=0;
}
if(sum==maxsum)
countmax++;
}
}
cout<<maxsum<<" "<<countmax<<"\n";
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkKewogICBpbnQgdDsKICAgY2luPj50OwogICBpbnQgbixwOwogICBpbnQgKmFyciwqc3VtYXJyOwogICBpbnQgc3VtLG1heHN1bT0wLGNvdW50bWF4PTA7CiAgIHdoaWxlKHQtLSkKICAgewogICAgICAgc3VtPTA7CiAgICAgICBjaW4+Pm4+PnA7CiAgICAgICBtYXhzdW09MDsKICAgICAgIGFycj1uZXcgaW50W25dOwogICAgICAgc3VtYXJyPW5ldyBpbnRbbisxXTsKICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICB7CiAgICAgICAgICAgY2luPj5hcnJbaV07CgogICAgICAgfQogICAgICAgc3VtYXJyWzBdPTA7CiAgICAgICBmb3IoaW50ICBpPTE7aTw9bjtpKyspCiAgICAgICB7CiAgICAgICAgICAgc3VtYXJyW2ldPWFycltpLTFdK3N1bWFycltpLTFdOwogICAgICAgfQogICAgICAgZm9yKGludCBsZWZ0PTE7bGVmdDw9bjtsZWZ0KyspCiAgICAgICB7CiAgICAgICAgICAgZm9yKGludCByaWdodD1sZWZ0O3JpZ2h0PD1uO3JpZ2h0KyspCiAgICAgICAgICAgewogICAgICAgICAgICBzdW09KHN1bWFycltyaWdodF0tc3VtYXJyW2xlZnQtMV0pJXA7CiAgICAgICAgICAgICAgIGlmKHN1bT5tYXhzdW0pCiAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgbWF4c3VtPXN1bTsKICAgICAgICAgICAgICAgICAgICAgICBjb3VudG1heD0wOwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgaWYoc3VtPT1tYXhzdW0pCiAgICAgICAgICAgICAgICAgICAgY291bnRtYXgrKzsKICAgICAgICAgICB9CiAgICAgICB9CiAgICAgICBjb3V0PDxtYXhzdW08PCIgIjw8Y291bnRtYXg8PCJcbiI7CiAgIH0KfQo=