#include <iostream>
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
const int N =1000;
int m,n;
double sum = 0;
int a,b;
int main()
{
while(cin>>m>>n,m!=-1&&n!=-1)
{
float s[n];
int get[n];
int put[n];
for(int i=0; i<n; i++)
{
cin>>a>>b;
s[i] = a*1.0/b;
get[i] = a;
put[i] = b;
}
for(int i=0; i<n; i++)
{
int max = i;
for(int j=i+1; j<n; j++)
{
if(s[j]>s[max])
max = j;
}
if(max != i)
{
swap(s[i],s[max]);
swap(get[i],get[max]);
swap(put[i],put[max]);
}
}
for(int i=0; i<n; i++)
{
if(m>=put[i])
{
sum += get[i];
m = m-put[i];
}
else
{
if(m<=0)
break;
else
{
sum += m*s[i];
break;
}
}
}
printf("%.3lf\n",sum);
sum = 0;
}
return 0;
}
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
const int N =1000;
int m,n;
double sum = 0;
int a,b;
int main()
{
while(cin>>m>>n,m!=-1&&n!=-1)
{
float s[n];
int get[n];
int put[n];
for(int i=0; i<n; i++)
{
cin>>a>>b;
s[i] = a*1.0/b;
get[i] = a;
put[i] = b;
}
for(int i=0; i<n; i++)
{
int max = i;
for(int j=i+1; j<n; j++)
{
if(s[j]>s[max])
max = j;
}
if(max != i)
{
swap(s[i],s[max]);
swap(get[i],get[max]);
swap(put[i],put[max]);
}
}
for(int i=0; i<n; i++)
{
if(m>=put[i])
{
sum += get[i];
m = m-put[i];
}
else
{
if(m<=0)
break;
else
{
sum += m*s[i];
break;
}
}
}
printf("%.3lf\n",sum);
sum = 0;
}
return 0;
}