/*
 * 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;
}