초등학생 영희는 선생님에게서 여러 개의 목록을 받았습니다. 각 목록은 서로 다른 양의 정수들로 이루어져 있습니다. 숙제는 각 목록마다 목록 안의 모든 정수 쌍의 합을 계산해 적는 것이었습니다. 베끼는 것을 막으려고 선생님은 학생마다 서로 다른 목록을 나눠 주었고, 그래서 영희는 혼자 힘으로 숙제를 마쳐야 했습니다.
숙제를 끝낸 영희는 밖에 나가 놀았고, 그 사이에 원래 목록들이 쓰레기로 버려져 사라지고 말았습니다. 이제 남은 것은 쌍의 합을 적어 둔 종이뿐입니다. 다음 수업 시간에 목록을 제출해야 하므로, 영희는 쌍의 합만 보고 원래 목록을 복원하려 합니다.
각 합 목록에 대해, 정확히 그 합들을 만들어 내는 서로 다른 양의 정수 목록을 복원하세요. 어떤 합 목록은 유효한 목록에서 나올 수 없을 수도 있는데, 그럴 때는 복원할 수 없다고 답해야 합니다.
첫 번째 줄에 테스트 케이스의 수 T가 주어집니다. 각 테스트 케이스는 두 줄로 이루어집니다. 첫 줄에는 원래 목록에 들어 있는 정수의 개수 n (2<n<50)이 주어집니다. 둘째 줄에는 그 목록의 모든 쌍의 합 n(n−1)/2개가 오름차순(비내림차순)으로 주어집니다. 각 합은 10000보다 작은 양의 정수입니다.
각 테스트 케이스마다 한 줄을 출력합니다. 원래 목록을 복원할 수 있다면, 서로 다른 양의 정수 n개를 오름차순으로 한 칸의 공백으로 구분해 출력합니다. 주어진 합들을 만들어 내는 서로 다른 양의 정수 목록이 존재하지 않으면 −1을 출력합니다. 같은 합들을 만들어 내는 유효한 목록이 둘 이상이면, 그중 사전순으로 가장 작은 목록(오름차순 수열을 앞에서부터 원소끼리 비교)을 출력합니다.