




注意点:
- gcd(d1,d2,d3,...,dn-1,n)=1则可以在n次跳跃后完成任务.
#include<cstdio>
#include<iostream>
using namespace std;
const int MAXN=2e7;
bool vis[MAXN];
int gcd(int a,int b){
if(!b)return a;
return gcd(b,a%b);
}
int a[MAXN];
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,k;
scanf("%d%d",&n,&k);
for(int i=1;i<=k;i++){
scanf("%d",&a[i]);
vis[a[i]]=1;
}
if(n==1&&k==1){
printf("-1\n");
vis[a[1]]=0;
continue;
}
int gcdValue=n;
for(int i=1;i<=n;i++){
if(!vis[i]){
gcdValue=gcd(gcdValue,i);
}
}
for(int i=1;i<=k;i++)
vis[a[i]]=0;
if(gcdValue==1){
printf("%d\n",n);
}else printf("-1\n");
}
return 0;
}