#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;

vector <long> v;
void timUoc (long a)
{
	if (sqrt(a)*sqrt(a)==a) v.push_back(sqrt(a));
	for (int i=1; i<sqrt (a); i++)
	{
		if (a%i==0)
		{
			v.push_back(i);
			v.push_back(a/i);
		}
	}
}

int main ()
{
	int t;
	cin>>t;
	int cs;
	int n;
	for (int k=1; k<=t; k++)
	{
		
		cin>>cs>>n;
		long arr[10004];
		long S=0;
		long tg;
		arr[0]=0;
		for (int i=1; i<=n; i++)
		{
			cin>>tg;
			S+=tg;
			arr[i]=S;
		}
		long SMax=arr[n];
		timUoc (SMax);
		sort (v.begin(), v.end());
		int kt=0;
		long buocM;
		for (int i=0; i<v.size(); i++)
		{
			long tong=v[i];
			long buoc=SMax/tong;
			int kt2=1;
			int vtd=0;
			int dem=0;
			while (1)
			{
				int kt2=0;
				for (int j=vtd+1; j<=n; j++)
				{
					if ((arr[j]-arr[vtd])==tong)
					{
						kt2=1;
						vtd=j;
						dem++;
						break;
					}
				}
				if (kt2==0) break;
			}
			if (dem==buoc)
			{
				buocM=buoc;
				kt=1;
				break;
			}
		}
		cout<<cs<<" "<<SMax/buocM<<endl;
		v.clear();
	}
	return 0;
}