#include<bits/stdc++.h>
#define vi vector<int>
#define pi pair<int,int>
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define For(i,j,k) for(int i=(j);i<=(k);i++)
#define Fol(i,j,k) for(int i=(j);i>=(k);i--)
#define IL inline
#define ll long long
#define ull unsigned long long
using namespace std;
#define N 3005
#define B1 31
#define B2 131
#define mod 998244353
#define mod2 1000000007
int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0' || ch>'9')f=(ch=='-'?-1:f),ch=getchar();
while(ch>='0' && ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
return x*f;
}
void write(int x){
if(x<0)x=-x,putchar('-');
if(x/10)write(x/10);
putchar(x%10+'0');
}
int pls(int x,int y){return (x+y>=mod?x+y-mod:x+y);}
int sub(int x,int y){return (x-y<0?x-y+mod:x-y);}
void Add(int &x,int y){x=pls(x,y);}
void Dec(int &x,int y){x=sub(x,y);}
int mul(int x,int y){return x*1ll*y%mod;}
int c,T,ans=0,a[N];
map<vi,int> t;
unordered_map<ll,int> t2;
pi cons(const vi &S,vi &T,int p){
int A=0,B=0;
For(i,0,((int)(S.size()))-1){
if(i<=p)continue;
T.pb(S[i]);A=(A*1ll*B1+S[i])%mod,B=(B*1ll*B2+S[i])%mod2;
}
if(S[p]!=1){
T.pb(S[p]-1);
A=(A*1ll*B1+(S[p]-1))%mod,B=(B*1ll*B2+(S[p]-1))%mod2;
}
return mp(A,B);
}
void dfs(const vi &S,pi H){
if(S.size()==0)return;
if(c<=2){if(t[S])return;t[S]=1;}
else{if(t2[H.fi*1ll*1e9+H.se])return;t2[H.fi*1ll*1e9+H.se]=1;}
ans++;
int maxn=0;
For(i,0,((int)(S.size()))-1){
if(S[i]>maxn){
vi T;pi nH=cons(S,T,i);dfs(T,nH);
}
maxn=max(maxn,S[i]);
}
}
void solve(){
int n=read(),m=read();ans=0;t.clear();t2.clear();
For(i,1,n)a[i]=read();
int A=0,B=0;
vi S;For(i,1,n)S.pb(a[i]),A=(A*1ll*B1+a[i])%mod,B=(B*1ll*B2+a[i])%mod2;
dfs(S,mp(A,B));write(ans);putchar('\n');
}
int main(){
freopen("seal.in","r",stdin);
freopen("seal.out","w",stdout);
c=read(),T=read();while(T--)solve();
return 0;
}