Albert는 친구들과 소수 (prime) 카드 게임을 하기로 했다. 총 m명의 플레이어가 있고, 양의 정수가 하나씩 적혀있는 n장의 카드가 있다. 편의상 카드에 적힌 수를 v[1], v[2], ..., v[n]이라 하자.
먼저 플레이어들에게 카드를 나눠준 후, 각자 점수를 계산하여 승자를 가린다.
n장의 카드는 아래 규칙에 따라 m명의 플레이어에게 나누어져야 한다:
n장의 카드를 모두 분배한 후 아래 규칙에 따라 각자 점수를 계산한다:
예를 들어 n = m = 3이고 카드에 적힌 수가 [1, 2, 3]이라 하자. 이 때, 각 플레이어는 정확히 한 장씩 카드를 받는다.
다른 예로, n = 3, m = 2이고 카드에 적힌 수가 [23, 29, 41]이라 하자. 이 때, 한 플레이어는 카드 한 장을 받고 다른 플레이어는 두 장을 받게 된다. 아래와 같은 세 가지 방법으로 카드를 분배할 수 있다.
Albert는 게임의 흥미를 위해 승자의 점수가 최소가 되도록 카드를 나눠주고 싶다. 위에 언급한 두 번째 예제의 경우 방법 1은 승자의 점수가 4이고 방법 2와 3은 승자의 점수가 2가 되므로 정답은 2가 된다. Albert가 달성 할 수 있는 승자의 점수 최소값을 구해보자.
소수 (prime number): 양의 정수 P가 1보다 크고 P의 약수가 1과 P뿐이면 소수이다.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 두 줄에 걸쳐 주어진다.
첫 줄에 n과 m이 공백으로 구분되어 주어진다.
둘째 줄에 n개의 정수가 (v[1], ..., v[n]) 공백으로 구분되어 주어진다.
각 테스트 케이스의 정답을 각 줄에 출력한다.