숫자 카드와 사칙연산 카드, 괄호 카드를 조합해 원하는 값을 만드는 게임이 있다. 이 게임을 좋아하는 진은 IT공과대학 MT에 카드를 챙겨 갔지만, 실수로 카드셋을 다 챙기지 못했다. 연산자 카드는 곱하기 카드만 챙겼고, 숫자 카드는 0부터 9까지 중 N종류만 챙겼다. 그래서 진은 규칙을 곱셈 게임으로 바꾸기로 했다.
곱셈 게임은 정해진 수를 숫자 카드와 곱하기 카드로 만드는 게임이다. 곱하기 카드를 가장 적게 쓴 팀이 이긴다. 챙긴 종류의 숫자 카드는 종류별로 넉넉해서 부족한 경우가 없고, 같은 종류를 몇 번이든 다시 쓸 수 있다.
숫자 카드를 나란히 놓으면 여러 자리 수가 된다. 이렇게 놓은 수의 십진 표기에 나오는 모든 자리는 챙긴 숫자 카드 종류에 속해야 한다. 앞자리가 0인 표기는 쓰지 않는다. 따라서 K를 만든다는 것은, 각 자리가 모두 챙긴 종류인 수 여러 개의 곱으로 K를 쓰는 것이다. 곱하는 수가 t개면 곱하기 카드는 t−1개 쓴다.
예를 들어 챙긴 숫자 카드 종류가 2, 3, 6이면 64는 32×2로 만들 수 있고 곱하기 카드를 1개 쓴다. 이보다 적게 쓰는 방법은 없다.
챙긴 숫자 카드 종류와 만들려는 수가 주어질 때, 곱하기 카드의 최소 개수를 구하라.
첫 줄에 테스트 케이스의 개수 T (1≤T≤50)가 주어진다.
각 테스트 케이스의 첫 줄에는 숫자 카드 종류의 개수 N (1≤N≤10)과 N개의 숫자 카드 종류가 공백으로 구분되어 주어진다. 종류는 서로 다르고 모두 0 이상 9 이하이다.
각 테스트 케이스의 둘째 줄에는 질의의 개수 M (1≤M≤20)이 주어진다.
이어지는 M개의 줄에 만들려는 자연수 K (1≤K≤106)가 한 줄에 하나씩 주어진다.
각 질의마다 곱하기 카드의 최소 개수를 한 줄에 출력한다. K를 만들 수 없으면 -1을 출력한다.