#include<stdlib.h>
#include<string.h>
#include<iostream.h>
int t,n,k,f[2][201][51];
void add(int *a,int *b,int *c)
{
int i,g;
memset(c,0,sizeof(c[0])*51);
if (a[0]>b[0]) c[0]=a[0]; else c[0]=b[0];
g=0;
for (i=1;i<=c[0];i++)
{
c=a+b+g;
g=c/10;
c%=10;
}
if (g>0) c[++c[0]]=g;
}
void print(int *a)
{
int i;
for (i=a[0];i>0;i--) cout<<a;
cout<<endl;
}
void main()
{
int i,j,l;
cin>>t;
for (i=0;i<t;i++)
{
cin>>n>>k;
for (j=0;j<k;j++) {cin>>l;n-=l;}
n-=k-1;
if (n<0) {cout<<0<<endl;exit(0);}
for (j=0;j<=n;j++)
{
memset(f[0][j],0,sizeof(f[0][j]));
f[0][j][0]=f[0][j][1]=1;
}
for (j=1;j<=k;j++)
{
memcpy(f[j&1][0],f[(j-1)&1][0],sizeof(f[(j-1)&1][0]));
for (l=1;l<=n;l++) add(f[j&1][l-1],f[(j-1)&1][l],f[j&1][l]);
}
print(f[k&1][n]);
}
}
![:cry:](./images/smilies/icon_cry.gif)