#include #include #include using namespace std; #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP(i,n,0) #define REP(i,s,e) for (i = s; i < e; i++) #define rep(i,n) REP(i,0,n) #define INF 1e8 typedef long long ll; int main() { int i, j, k, l, n, m; bool dp[11][1024] {}; int a[10], b[10]; cin >> n; rep (i,n) cin >> a[i]; cin >> m; rep (i,m) cin >> b[i]; sort(b,b+m,greater{}); dp[0][0] = true; REP (i,1,11) { rep (j,pow(2,n)) { if (dp[i-1][j]) { rep (k,pow(2,n)) { if ((~j & k) == k) { int sum = 0; rep (l,n) { if (k & (1<= sum) dp[i][j|k] = true; } } } } } rep (i,11) { if (dp[i][(int)pow(2,n)-1]) { cout << i << endl; return 0; } } cout << -1 << endl; return 0; }