#include using namespace std; const int N=105,M=1005,inf=0x3f3f3f3f; struct node { int s,n; string st; }dp[M]; int m,n,s[N],c[N]; bool operator <(node a,node b) { if(a.s!=b.s) return a.sb.n; return a.st>b.st; } void solve(int cas) { scanf("%d %d",&m,&n); for(int i=1;i<=n;i++) scanf("%d %d",&s[i],&c[i]); for(int i=0;i<=m;i++) dp[i]=node{-inf,0,string("")}; dp[0]=node{0,0,string("")}; for(int i=1;i<=n;i++) { for(int j=m;j>=c[i];j--) { node &now=dp[j-c[i]]; node tmp=node{now.s+s[i],now.n+i,now.st+(char)i}; if(dp[j]