//Δ_1004 #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef double DB; const int N = 111; const int M = 1111; const int inf = 1e9; int n,m,a[N],b[N]; struct node{ int f,g,r; node(int F=0,int G=0){ f=F,g=G,r=0; } }c[N][M],o; bool operator<(node p,node q){ if(p.f!=q.f) return p.fq.g; return p.r>T; for(tc=1;tc<=T;tc++){ cin>>m>>n; for(i=1;i<=n;i=i+1) cin>>a[i]>>b[i]; for(j=0;j<=m;j=j+1) c[n+1][j]=node(0,0); for(i=n;i>=1;i=i-1){ for(j=0;j<=m;j=j+1) c[i][j]=c[i+1][j],c[i][j].r=0; for(j=b[i];j<=m;j=j+1){ o=c[i+1][j-b[i]]; o.f+=a[i],o.g+=i,o.r=1; cmax(c[i][j],o); } } o=node(-1,0); for(j=0;j<=m;j=j+1) cmax(o,c[1][j]); o.r=1; for(i=1;i<=n;i=i+1) e[i]=chk(i); x=0,y=0; for(i=1;i<=n;i=i+1) if(e[i]) x+=a[i],y+=b[i]; cout<<"Case #"<