이상한 화폐

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

시간 여행 상인 Tim이 미래에 첫발을 내딛는다. 도착한 Tim은 손가락 개수가 저마다 다른 여러 지적 외계인을 만나고, 온갖 이상한 화폐가 오가는 것을 본다. 미래에서는 위조가 매우 심각한 문제여서, 은하 정부가 지나칠 정도로 다양한 새 화폐를 발행해 왔다. 정부 구성원들의 손가락 개수가 제각각인 데다가 모두 수학에 뛰어나서, 새 화폐들은 매우 헷갈리는 단위 체계를 쓴다. 1 Melka가 10 Zedar, 1 Zedar가 10 Milbac인 것이 아니라, 1 Melka는 13 Zedar, 1 Zedar는 41 Milbac이다 (Stalsgeap이라는 외계 종족은 손가락이 41개인 것으로 유명하다).

이 모든 화폐를 헷갈리지 않고 다루기는 어렵겠지만, Tim이 확실히 아는 원칙 하나는 싸게 사서 비싸게 팔라는 것이다. 화폐 단위 체계와, 한 물건에 대한 여러 상인의 가격(각 가격은 단위별 지폐 장수로 표시된다)이 주어질 때, Tim이 그 물건을 살 수 있는 가장 싼 가격과 팔 수 있는 가장 비싼 가격의 차이를 구하라.

입력

첫째 줄에 데이터 집합의 개수 $K$가 주어지고, 이어서 $K$개의 데이터 집합이 주어진다. 각 데이터 집합의 형식은 다음과 같다.

데이터 집합의 첫째 줄에는 화폐 단위의 개수 $2 \le D \le 7$과 가격의 개수 $2 \le N \le 10$이 주어진다. 화폐 단위는 가장 큰 것을 $1$, 가장 작은 것을 $D$로 번호를 매긴다. 다음 줄에는 $D - 1$개의 양의 정수가 주어지며, $i$번째 정수는 단위 $i$의 지폐 한 장이 단위 $i + 1$의 지폐 몇 장에 해당하는지를 나타낸다.

그다음 $N$개의 줄에는 각각 하나의 가격이 주어진다. 각 줄에는 $D$개의 음이 아닌 정수가 주어지며, $i$번째 정수는 그 가격에 포함된 단위 $i$ 지폐의 장수이다. 각 가격을 가장 작은 단위로 환산한 값은 32비트 정수 범위에 들어감이 보장된다.

출력

각 데이터 집합에 대해, 한 줄에 "Data Set x:"를 출력한다. 여기서 $x$는 데이터 집합의 번호이다. 다음 줄에는 가장 비싼 가격과 가장 싼 가격의 차이를 가장 작은 단위로 환산해 출력한다. 연속한 데이터 집합 사이는 빈 줄로 구분한다.