#include using namespace std; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) const int INF = 1<<29; int N,M; int A[11],B[11]; int sum[1<<10], dp[11][1<<10]; int main(){ cin >> N; REP(i,N) cin >> A[i]; cin >> M; REP(i,M) cin >> B[i]; REP(i,N){ int k = 1<()); REP(i,M+1) REP(j,1<<10) dp[i][j] = INF; dp[0][0] = 0; const int fullbit = (1<0; l=(l-1)&k){ if(sum[l] > B[i]) continue; dp[i+1][j|l] = min(dp[i+1][j|l], dp[i][j]+1); } dp[i+1][j] = min(dp[i+1][j], dp[i][j]); } } int result = dp[M][fullbit]; if(result == INF) result = -1; cout << result << endl; }