#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int x;
int y;
double z;
}a[1010];
int cmp(node a,node b)
{
return a.z>b.z;
}
int main()
{
int n,m,i;
while(cin>>m>>n&&m!=-1&&n!=-1)
{
double sum=0.0;
for(i=0;i<n;i++)
{
cin>>a[i].x>>a[i].y;
a[i].z=a[i].x*1.0/a[i].y;
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
if(a[i].y>=m)
{
sum+=a[i].x*m*1.0/a[i].y;
m=0;
}
else
{
sum+=a[i].x;
m-=a[i].y;
}
printf("%.3lf\n",sum);
}
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int x;
int y;
double z;
}a[1010];
int cmp(node a,node b)
{
return a.z>b.z;
}
int main()
{
int n,m,i;
while(cin>>m>>n&&m!=-1&&n!=-1)
{
double sum=0.0;
for(i=0;i<n;i++)
{
cin>>a[i].x>>a[i].y;
a[i].z=a[i].x*1.0/a[i].y;
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
if(a[i].y>=m)
{
sum+=a[i].x*m*1.0/a[i].y;
m=0;
}
else
{
sum+=a[i].x;
m-=a[i].y;
}
printf("%.3lf\n",sum);
}
return 0;
}