//DP噩梦
//对新手来说比较蛋疼的一题,建议先做其他的
//31MS 260K 825 B
#include <stdio.h>
#include <stdlib.h>
#define M 1000000
struct node{
int a,;
int b;
double ab;
}c[1005];
int cmp(const void*a,const void*b)
{
return (*(node *)b).ab > (*(node *)a).ab?1:-1;
}
int main(void)
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
double ans=0;
if(n==-1 && m==-1) break;
for(int i=0;i<m;i++){
scanf("%d%d",&c[i].a,&c[i].b);
c[i].ab=(double)c[i].a/c[i].b;
if(c[i].b==0){ c[i].ab=0;ans+=c[i].a;}
}
qsort(c,m,sizeof(c[0]),cmp);
for(int i=0;i<m;i++){
if(c[i].b==0) break;
if(n>=c[i].b){
ans+=c[i].a;
n-=c[i].b;
}else{
ans+=(double)n*c[i].a/c[i].b;
break;
}
}
printf("%.3lf\n",ans);
}
return 0;
}