#include<cstdio>
#include<vector>
#include<cstdlib>
using namespace std;
int a,b,c,ansl,mxans;
bool use[105][105];
pair<int,int> nxt[10005];
int sz;
void dfs(int now,int cnt)
{
	if(cnt+(sz-now)/2+1<mxans) return ;
	if(now==sz)
	{
		if(cnt>mxans) mxans=cnt,ansl=0,printf("%d\n",mxans);
		if(cnt==mxans) ansl++,printf("%d\n",ansl);
		if(ansl==998244353) ansl=0;
		return ;
	}
	int x=nxt[now].first,y=nxt[now].second;
	if(use[x][y+1]==0&&use[x][y-1]==0&&use[x+1][y]==0
	&&use[x-1][y]==0&&use[x+1][y-1]==0&&use[x-1][y+1]==0)
	{
		use[x][y]=1;
		dfs(now+1,cnt+1);
		use[x][y]=0;
	}
	dfs(now+1,cnt);
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		sz=mxans=ansl=0;
		scanf("%d%d%d",&a,&b,&c);
		for(int i=0;i<100;i++)
			for(int j=0;j<100;j++)
				if((!(i&1)||!(j&1))&&!(i<51-a*2+1||i>51+a*2-1||j<51-b*2+1||j>51+b*2-1||i+j<102-c*2+1||i+j>102+c*2-1))
					nxt[sz++]={i,j};
		dfs(0,0);
		printf("%d %d\n",mxans,ansl);
	}
	return 0;
}
