#include #include #include #include using namespace std; #define REP(i,s,e) for (i = s; i <= e; i++) #define rep(i,n) REP (i,0,(int)(n)-1) #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP (i,(int)(n)-1,0) const int INF = 1e8; const int MOD = 1e9+7; typedef long long ll; ll dp[100001]; int main(void) { int d; int a[60]; cin >> d; while (d--) { int i, j, k, m; int n[2]; cin >> n[0] >> n[1] >> m; if (n[0] < n[1]) swap(n[0],n[1]); rep (i,m) cin >> a[i]; sort(a,a+m); rep (i,n[0]+1) dp[i] = 0; rep (i,m) rrep (j,n[0]-a[i]+1) { if (__builtin_popcountll(dp[j+a[i]]) <= __builtin_popcountll(dp[j]) + 1) { dp[j+a[i]] = dp[j] | 1 << i; } } int ma = 0, mask; rep (i,n[0]+1) { int x = __builtin_popcountll(dp[i]); if (ma <= x) { ma = x; mask = dp[i]; } } rep (i,n[1]+1) dp[i] = 0; rep (i,m) if (!(mask&1<