#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int M,N;
typedef struct
{
float J;
float F;
double Aver;
}room;
room Rooms[3001];
int Cmp(const room a,const room b)
{
return a.Aver > b.Aver;
}
int main()
{
while(cin>>M>>N,(M != -1)&&(N != -1))
{
for(int i = 0; i < N; i++)
{
cin>>Rooms[i].J>>Rooms[i].F;
Rooms[i].Aver = (Rooms[i].J)/(Rooms[i].F);
}
sort(Rooms,Rooms+N,Cmp);
double sum = 0;
double res = 0;
int j = 0;
while(sum < M && j < N)
{
if(Rooms[j].F < (M - sum))
{
sum += Rooms[j].F;
res += Rooms[j].J;
}
else
{
res += Rooms[j].Aver*(M - sum);
sum = M;
break;
}
j++;
}
printf("%.3lf\n",res);
}
return 0;
}
07-27