#include #include #include #include using namespace std; const int INF=0x3f3f3f3f,maxn=101,maxb=1001; int T,n,b,s[maxn],c[maxn],dp[maxn][maxb],sum[maxn][maxb]; int main() { int Case=1; scanf("%d",&T); while(T--) { scanf("%d%d",&b,&n); for(int i=n;i>=1;i--)scanf("%d%d",&s[i],&c[i]); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) for(int j=1;j<=b;j++) sum[i][j]=INF; for(int i=0;i<=n;i++)sum[i][0]=0; for(int i=0;i<=b;i++)sum[0][i]=0; for(int i=1;i<=n;i++) for(int j=b;j>=0;j--) { dp[i][j]=dp[i-1][j],sum[i][j]=sum[i-1][j]; if(j>=c[i]) { if(dp[i][j]ans; for(int i=n;i>=1;i--) if(dp[i][bb]==dp[i-1][bb-c[i]]+s[i]&&sum[i][bb]==sum[i-1][bb-c[i]]+(n+1-i)) ans.push_back(n+1-i),cost+=c[i],bb-=c[i]; printf("%d %d\n",dp[n][b],cost); for(int i=0;i