#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define maxn 1050
using namespace std;
int a[maxn];
struct Node{
int x;
int y;
double d;
bool operator <(const Node &other) const{
return d>other.d;
}
}node[maxn];
int sum[maxn];
double dou[maxn];
string s,b;
//bool compare(const double &a,const double &b){
// return a<b;
//}
int main(){
int n,m=0,index;
double count=0;
int t,cnt=0;
while(cin>>m>>t&&m!=-1&&t!=-1){
for(int i=0;i<t;i++){
cin>>node[i].x>>node[i].y;
node[i].d=node[i].x*1.0/node[i].y;
}
sort(node,node+t);
for(int i=0;i<t;i++){
if(m>=node[i].y){
count+=node[i].x;
m-=node[i].y;
}
else{
count+=m*node[i].d;
m=0;
}
if(m==0) break;
}
printf("%.3lf\n",count);
count=0;
}
return 0;
}