#include<stdio.h>
#include<math.h>
#include <queue>
#include<algorithm>
#include <iostream>
#include <string.h>
using namespace std;
struct node
{
int Ji,Fi;
bool operator <(const node a)const
{
return a.Ji*1.0/a.Fi<Ji*1.0/Fi;
}
};
node no[1005];
int main()
{
int m,n;
while(~scanf("%d%d",&m,&n))
{
if(m==-1&&n==-1)break;
int i;
for(i=0;i<n;i++)
{
scanf("%d%d",&no[i].Ji,&no[i].Fi);
}
sort(no,no+n,less<node>());
double ans=0;
for(i=0;i<n&&m;i++)
{
if(no[i].Fi<=m)
{
ans+=no[i].Ji;
m-=no[i].Fi;
}
else
{
ans+=m*(no[i].Ji*1.0/no[i].Fi);
m=0;
}
}
printf("%.3lf\n",ans);
}
return 0;
}