#include using namespace std; int main() { int N; cin >> N; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } int M; cin >> M; vector B(M); for (int i = 0; i < M; ++i) { cin >> B[i]; } sort(B.begin(), B.end(), greater()); int res = 0x3f3f3f3f; sort(A.begin(), A.end()); do { int c = 0x3f3f3f3f; for (int i = 0, j = 0; i < M; ++i) { int s = 0; while (j < N && s + A[j] <= B[i]) s += A[j++]; if (j == N) { c = i + 1; break; } } res = min(res, c); } while (next_permutation(A.begin(), A.end())); if (res == 0x3f3f3f3f) res = -1; cout << res << endl; return 0; }