/*
* Main1009.cpp
*
* Created on: 2012-3-11
* Author: hxy
*/
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
struct s{
double r;
int a;
int b;
}st[1005];
int cmp(const void *a, const void *b){
if((*(s*)a).r > (*(s*)b).r)
return -1;
else if((*(s*)a).r < (*(s*)b).r)
return 1;
else
return 0;
}
int main() {
int m, n, i;
double max;
while (scanf("%d%d",&m,&n)) {
max=0;
for (i = 0; i < n; i++) {
cin>>st[i].a>>st[i].b;
st[i].r=(double)st[i].a/st[i].b;
}
for(i=0; i<n; i++){
printf("%.4lf\t%d\t%d\n", st[i].r,st[i].a,st[i].b);
}
printf("---------\n");
qsort(st, n, sizeof(s[0]), cmp);
for(i=0; i<n; i++){
printf("%.4lf\t%d\t%d\n", st[i].r,st[i].a,st[i].b);
}
printf("---------\n");
for(i=0; i<n; i++){
if(m>=st[i].b){
m-=st[i].b;
max+=st[i].a;
}else{
max+=m*st[i].r;
break;
}
}
//printf("%.3f\n",max);
}
return 0;
}