#include #include #include #include #include #include using namespace std; int a[60]; int s[60]; int dp[61][1000000]; int main() { cin.tie(0); ios::sync_with_stdio(false); int d; cin >> d; while(d--) { int n1, n2, m; cin >> n1 >> n2 >> m; if(n1 > n2) swap(n1, n2); for(int i = 0; i < m; i++) { cin >> a[i]; } sort(a, a + m); for(int i = 1; i < m; i++) { s[i] = s[i - 1] + a[i - 1]; } memset(dp, -1, sizeof dp); dp[0][0] = 0; for(int i = 0; i < m; i++) { for(int j = 0; j <= n1; j++) if(dp[i][j] != -1) { dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]); if(j + a[i] <= n1) dp[i + 1][j + a[i]] = max(dp[i + 1][j + a[i]], dp[i][j] + 1); if(s[i] - j + a[i] <= n2) dp[i + 1][j] = max(dp[i + 1][j], dp[i][j] + 1); } } cout << *max_element(dp[m], dp[m] + n1 + 1) << endl; } }