#include <stdio.h>
#include <stdlib.h>
int main()
{
int v,n,i,j,p[110],m[110],ans,t;
while(scanf("%d",&v)){
if(v==0)break;
scanf("%d",&n);
for(i=0;i<=n-1;i++){
scanf("%d%d",&p[i],&m[i]);
}
for(i=0;i<n-1;i++){
for(j=i+1;j<=n-1;j++){
if(p[i]<p[j]){
t=p[i];
p[i]=p[j];
p[j]=t;
t=m[i];
m[i]=m[j];
m[j]=t;
}
}
}
ans=0;
for(i=0;i<=n-1;i++){
if(m[i]<=v){
ans+=m[i]*p[i];
v=v-m[i];
}else
{
ans+=v*p[i];
v=0;
}
if(v==0)break;
}
printf("%d\n",ans);
}
return 0;
}
按价值/体积由大到小排序,每次选择如果容积足够就将所有该种物品拿走,若果不够,就将剩下的空间全部装该物品,等容积变为零就停止