#include<bits/stdc++.h>
#define ll long long
#define pt putchar(' ')
#define nl puts("")
#define pi pair<int,int>
#define pb push_back
#define go(it) for(auto &it:as[x])
using namespace std;
const int N=3e7+10,Q=2e6+10;
ll n,q[Q];
int t,m,cnt;
int pr[Q<<1],phi[N];
int v[N];
bool p[N],pk[N];
ll fr(){
ll x=0,flag=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-') flag=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=x*10+(ch-'0');
ch=getchar();
}
return x*flag;
}
void fw(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) fw(x/10);
putchar(x%10+'0');
}
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
void init(int x)
{
v[1]=pk[1]=1;
for(int i=2;i<=x;i++)
{
if(!p[i])
{
pr[++cnt]=i;
v[i]=i;
pk[i]=1;
}
for(int j=1;pr[j]<=x/i && j<=cnt;j++)
{
if(v[i]<pr[j]) break;
int t=pr[j]*i;
v[t]=pr[j];p[t]=1;
pk[t]=(pk[i] && (v[i]==pr[j]));
}
phi[i]=phi[i-1]+(v[i]==i);
}
}
void solve()
{
n=fr(),m=fr();
for(int i=1;i<=m;i++) q[i]=fr();
if(pr[m+1]<=n)
{
puts("game won't stop");
return;
}
unordered_set<int> s;
for(int i=1;i<=m;i++)
{
while(q[i]*q[i]>n && !pk[q[i]]) q[i]/=v[q[i]];
if(q[i]*v[q[i]]>n) s.insert(v[q[i]]);
if(s.size()==phi[n]) {fw(i),nl;return;}
else if(m-i+s.size()<phi[n])
{
puts("game won't stop");
return;
}
}
}
signed main()
{
init(N-1);
t=fr();
while(t--) solve();
return 0;
}