#include<iostream>
#include<iomanip>
using namespace std;
struct fun{
double y;
int z;
}t[1005];
int cmp(const void *a,const void *b)
{
struct fun *c=(struct fun *)a;
struct fun *d=(struct fun *)b;
return c->y>d->y?-1:1;
}
int main()
{
int n,m,i,j[1005],f[1005];
while(cin>>m>>n)
{
if(n==-1&&m==-1)
break;
for(i=0;i<n;i++)
{
cin>>j[i]>>f[i];
t[i].y=1.0*j[i]/f[i];
t[i].z=i;
}
qsort(t,n,sizeof(struct fun),cmp);
double ma=0;
for(i=0;i<n;i++)
{
if(f[t[i].z]<=m)
{
ma=ma+j[t[i].z];
m=m-f[t[i].z];
}
else if(m!=0)
{
ma=ma+1.0*j[t[i].z]*m/f[t[i].z];
m=0;
}
if(m==0)
break;
}
cout<<fixed<<showpoint<<setprecision(3)<<ma<<endl;
}
return 0;
}
#include<iomanip>
using namespace std;
struct fun{
double y;
int z;
}t[1005];
int cmp(const void *a,const void *b)
{
struct fun *c=(struct fun *)a;
struct fun *d=(struct fun *)b;
return c->y>d->y?-1:1;
}
int main()
{
int n,m,i,j[1005],f[1005];
while(cin>>m>>n)
{
if(n==-1&&m==-1)
break;
for(i=0;i<n;i++)
{
cin>>j[i]>>f[i];
t[i].y=1.0*j[i]/f[i];
t[i].z=i;
}
qsort(t,n,sizeof(struct fun),cmp);
double ma=0;
for(i=0;i<n;i++)
{
if(f[t[i].z]<=m)
{
ma=ma+j[t[i].z];
m=m-f[t[i].z];
}
else if(m!=0)
{
ma=ma+1.0*j[t[i].z]*m/f[t[i].z];
m=0;
}
if(m==0)
break;
}
cout<<fixed<<showpoint<<setprecision(3)<<ma<<endl;
}
return 0;
}