#include "testlib.h"
#define int long long
using namespace std;
const int N=1e6+7;
int v[N];
inline int sum(int r){
return r*(r+1)/2;
}
inline bool solve(long long x,long long y,long long z){
long long n=x,m=y,k=z;
if(m+1<k)return 1;
if(sum(k-1)>n)return 1;
n-=sum(k-1);
m-=k-1;
if(!m&&n)return 1;
if(n<m) return 1;
if(m==1&&n==k) return 1;
if(k==1&&n<2*m) return 1;
if(k==2&&n==m+1) return 1;
return 0;
}
signed main(int argc, char* argv[]) {
int T=inf.readInt();
while(T--){
long long n=inf.readLong(),m=inf.readLong(),k=inf.readLong();
if(!m) continue;
int is=solve(n,m,k);
int begin=ouf.readLong();
if(is&&begin!=-1){
quitf(_wa, "There are no solution but you give one.");
}
if(begin==-1&&!is) quitf(_wa, "There are a solution but you give -1.");
if(is) continue;
if(begin==k) quitf(_wa, "The mex is wrong,it is not given k.");
if(begin<k) v[begin]++;
for(int i=1;i<m;++i){
int p=ouf.readLong();
if(p==k) quitf(_wa, "The mex is wrong,it is not given k.");
if(p<k)v[p]++;
}
for(int i=1;i<k;++i){
if(!v[i]){
quitf(_wa, "The mex is wrong,it is smaller than given k.");
}
}
}
quitf(_ok, "The answer is correct.");
}
Unknown Error.FAIL Unexpected end of file - int32 expected ()