#include using namespace std; typedef long long ll; typedef long double ld; #define REP(i, n) for (int i = 0; i < (n); ++i) #define REPR(i, n) for (int i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (int i = m; i < n; ++i) #define FORR(i, m, n) for (int i = m; i >= n; --i) #define ALL(v) (v).begin(),(v).end() templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> q; while(q--){ int u,v;cin >> u >> v; int m;cin >> m; vector a(m); REP(i,m){ cin >> a[i]; } sort(ALL(a)); vector> dp(m+1,vector(u+1,-1)); dp[0][0]=0; int sum=0; REP(i,m){ REP(j,u+1){ if(dp[i][j]==-1){ continue; } chmax(dp[i+1][j],dp[i][j]); if(j+a[i]<=u){ chmax(dp[i+1][j+a[i]],dp[i][j]+1); } if(v-(sum-j)>=a[i]){ chmax(dp[i+1][j],dp[i][j]+1); } } sum+=a[i]; } int ans=0; REP(i,u+1){ chmax(ans,dp[m][i]); } cout << ans << endl; } }