#include<stdio.h>
#include<string.h>
#define max 100
int c1[max],c2[max];
int chaNum[27];
void start()
{
for(int i=1; i<=26; i++)
{
chaNum[i]=i;
}
}
int main()
{
int T;
int ans;
scanf("%d",&T);
int intNum[27];
start();
for(int ii=0; ii<T; ii++)
{
ans=0;
memset(c1,0,sizeof(c1));
memset(c2,0,sizeof(c2));
for(int i=1; i<=26; i++)
{
scanf("%d",&intNum[i]);
}
for(int i=0; i<=intNum[1]*chaNum[1]; i++)
c1[i]=1;
for(int i=2; i<=26; i++)//代表26个字母。
{
for(int j=0; j<=50; j++)//代表式子的系数。
{
for(int k=0;k*chaNum[i]+j<=50&&k<=intNum[i]; k++)//代表组合数的大小。
c2[k*chaNum[i]+j]+=c1[j];
}
for(int g=0; g<=50; g++)
{
c1[g]=c2[g];
c2[g]=0;
}
}
for(int i=1; i<=50; i++)
ans+=c1[i];
printf("%d\n",ans);
}
return 0;
}