동혁이는 미식축구 경기를 보면서 팔굽혀펴기를 한다. 응원하는 팀이 득점할 때마다, 그 시점까지 팀이 쌓은 총점과 같은 횟수로 팔굽혀펴기를 한다.
예를 들어 팀이 터치다운으로 7점을 얻으면 7번을 한다. 이어서 필드골로 3점을 더 얻으면 총점이 10점이므로 10번을 한다. 그 다음 세이프티로 2점을 더 얻으면 총점이 12점이므로 12번을 한다. 이 상태에서 경기가 끝났다면 동혁이가 한 팔굽혀펴기는 7+10+12=29번이다.
경기가 끝난 뒤 동혁이는 친구에게 "나 오늘 팔굽혀펴기를 총 N번 했어"라고 말했다. N이 주어질 때 팀이 얻은 최종 점수를 구하는 프로그램을 작성하시오. 조건에 맞는 최종 점수가 여러 가지라면 그중 가장 큰 값을 구한다. 팔굽혀펴기를 29번 했다면 팀이 3, 2, 2, 7점을 차례로 얻어 최종 점수가 14점이 되는 경우가 가능한 최종 점수 중 최댓값이다.
첫째 줄에 테스트 케이스의 개수가 주어진다. 이 값은 1 이상 20 이하이다.
각 테스트 케이스의 첫 줄에는 두 정수 N과 M (1≤N≤5000, 1≤M≤10)이 주어진다. N은 동혁이가 한 팔굽혀펴기 횟수이고, M은 그 경기에서 나올 수 있는 득점 종류의 개수이다.
다음 줄에는 M개의 정수 S1,S2,…,SM (1≤Si≤20)이 공백으로 구분되어 주어진다. Si는 팀이 한 번에 얻을 수 있는 점수이고, 모든 값은 서로 다르다. 같은 점수를 여러 번 얻을 수 있다.
각 테스트 케이스마다 팀이 얻은 최종 점수의 최댓값을 한 줄에 출력한다. 가능한 최종 점수가 없으면 -1을 출력한다.