#include <iostream>
#include <bits/stdc++.h>
using namespace std ;
int T,N,P,A[51],ans,AP[10][1001];
bool check(int x){
int total = 0;
for(int i=1;i<=N;i++){
total += (upper_bound(AP[A[i]]+1,AP[A[i]]+1+1000,x)-(AP[A[i]]+1));
}
return (total>=P) ;
}
int main(){
scanf("%d",&T) ;
memset(AP,0,sizeof AP) ;
for(int i=1;i<=8;i++){
for(int j=1;j<=1000;j++){
AP[i][j] = i*j ;
AP[i][j] += AP[i][j-1] ;
}
}
while(T--){
scanf("%d",&P) ;
scanf("%d",&N) ;
for(int i=1;i<=N;i++){
scanf("%d",&A[i]) ;
}
if(P==0)
ans = 0;
else{
int low,high,mid ;
low = 1;
high = 100000000 ;
while(low<=high){
mid = (low+high)/2 ;
if(check(mid) && (mid == 1 || !check(mid-1)))
break ;
else if(check(mid))
high = mid-1;
else
low = mid+1;
}
ans = mid ;
}
printf("%d\n",ans) ;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQgOwoKaW50IFQsTixQLEFbNTFdLGFucyxBUFsxMF1bMTAwMV07Cgpib29sIGNoZWNrKGludCB4KXsKCglpbnQgdG90YWwgPSAwOwoJZm9yKGludCBpPTE7aTw9TjtpKyspewoJCXRvdGFsICs9ICh1cHBlcl9ib3VuZChBUFtBW2ldXSsxLEFQW0FbaV1dKzErMTAwMCx4KS0oQVBbQVtpXV0rMSkpOwoJfQoJcmV0dXJuICh0b3RhbD49UCkgOwp9CgppbnQgbWFpbigpewoJc2NhbmYoIiVkIiwmVCkgOwoJbWVtc2V0KEFQLDAsc2l6ZW9mIEFQKSA7Cglmb3IoaW50IGk9MTtpPD04O2krKyl7CgkJZm9yKGludCBqPTE7ajw9MTAwMDtqKyspewoJCQlBUFtpXVtqXSA9IGkqaiA7CgkJCUFQW2ldW2pdICs9IEFQW2ldW2otMV0gOwoJCX0KCX0JCgl3aGlsZShULS0pewoJCXNjYW5mKCIlZCIsJlApIDsKCQlzY2FuZigiJWQiLCZOKSA7CgkJZm9yKGludCBpPTE7aTw9TjtpKyspewoJCQlzY2FuZigiJWQiLCZBW2ldKSA7CgkJfQoJCWlmKFA9PTApCgkJCWFucyA9IDA7CgkJZWxzZXsJCgkJCWludCBsb3csaGlnaCxtaWQgOwoJCQlsb3cgPSAxOwoJCQloaWdoID0gMTAwMDAwMDAwIDsKCQkJd2hpbGUobG93PD1oaWdoKXsKCgkJCQltaWQgPSAobG93K2hpZ2gpLzIgOwoJCQkJaWYoY2hlY2sobWlkKSAmJiAobWlkID09IDEgfHwgIWNoZWNrKG1pZC0xKSkpCgkJCQkJYnJlYWsgOwoJCQkJZWxzZSBpZihjaGVjayhtaWQpKQoJCQkJCWhpZ2ggPSBtaWQtMTsKCQkJCWVsc2UKCQkJCQlsb3cgPSBtaWQrMTsKCQkJfQoJCQlhbnMgPSBtaWQgOwoJCX0gIAoJCXByaW50ZigiJWRcbiIsYW5zKSA7Cgl9CglyZXR1cm4gMDsKfQ==