#include using namespace std; int main(void) { 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.rbegin(), B.rend()); sort(A.begin(), A.end()); int ans = 1e9; do { int cnt = 0, nv = 0; for(int i = 0; i < N; ++i) { if(cnt >= M) { cnt = 1e9; break; } if(nv + A[i] > B[cnt]) ++cnt, nv = 0, --i; else nv += A[i]; } ans = min(ans, cnt + 1); } while(next_permutation(A.begin(), A.end())); cout << (ans > 100 ? -1 : ans) << "\n"; return 0; }