#include <iostream>
#include <stdio.h>
struct Rate
{
double rate;
int index;
};
void QSort(struct Rate ra[],int p,int r);
int partition(struct Rate ra[],int p,int r);
using namespace std;
#define N 1000
int main()
{
int J[N],F[N];
struct Rate ra[N];
int i;
int rooms,food;
cin>>food>>rooms;
while(food!=-1||rooms!=-1)
{
double getJavaBean=0.0;
for(i=0;i<rooms;i++)
{
cin>>J[i]>>F[i];
ra[i].rate=(double)J[i]/(double)F[i];
ra[i].index=i;
}
QSort(ra,0,rooms);
i=0;
while(food)
{
if(food>=F[ra[i].index])
{
getJavaBean+=J[ra[i].index];
food-=F[ra[i].index];
i++;
}
else
{
getJavaBean+=(double)food/(double)F[ra[i].index]*(double)J[ra[i].index];
food=0;
}
}
printf("%.3lf\n",getJavaBean);
cin>>food>>rooms;
}
return 0;
}
void QSort(struct Rate ra[],int p,int r)
{
if(p<r)
{
int q=partition(ra,p,r);
QSort(ra,p,q-1);
QSort(ra,q+1,r);
}
}
int partition(struct Rate ra[],int p,int r)
{
double key=ra[p].rate;
int i=p;
for(int j=p+1;j<=r;j++)
{
if(!(ra[j].rate<key))
{
i=i+1;
Rate temp=ra[i];
ra[i]=ra[j];
ra[j]=temp;
}
}
Rate temp=ra[i];
ra[i]=ra[p];
ra[p]=temp;
return i;
}
hdu1009 Fat Mouse'sTrade