#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
struct room
{
int j, f;
bool operator < (const room t) const {
return (double) j/f >(double)t.j /t.f;
}
};
int main()
{
int m, n, i;
while(scanf("%d%d", &m, &n) && (m+1) ||(n+1))
{
vector<room> v;
room r;
double ans = 0;
for(i=0; i<n; ++i)
{
scanf("%d%d",&r.j,&r.f);
v.push_back(r);
}
sort(v.begin(), v.end());
i = 0;
while(m >0 && i<v.size())
{
if(v[i].f <= m)
{
m -= v[i].f;
ans += v[i].j;
}else
{
ans +=(double)m /v[i].f *v[i].j;
m = 0;
}
++i;
}
printf("%.3lf\n",ans);
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IHJvb20KewogICAgaW50IGosIGY7CiAgICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IHJvb20gdCkgY29uc3QgewogICAgICAgIHJldHVybiAoZG91YmxlKSBqL2YgPihkb3VibGUpdC5qIC90LmY7CiAgICB9Cn07CmludCBtYWluKCkKewogICAgaW50IG0sIG4sIGk7CiAgICB3aGlsZShzY2FuZigiJWQlZCIsICZtLCAmbikgJiYgKG0rMSkgfHwobisxKSkKICAgIHsKICAgICAgICB2ZWN0b3I8cm9vbT4gdjsKICAgICAgICByb29tIHI7CiAgICAgICAgZG91YmxlIGFucyA9IDA7CiAgICAgICAgZm9yKGk9MDsgaTxuOyArK2kpCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJWQlZCIsJnIuaiwmci5mKTsKICAgICAgICAgICAgdi5wdXNoX2JhY2socik7CiAgICAgICAgfQogICAgICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgICAgICBpID0gMDsKICAgICAgICB3aGlsZShtID4wICYmIGk8di5zaXplKCkpCiAgICAgICAgewoKICAgICAgICAgICAgaWYodltpXS5mIDw9IG0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG0gLT0gdltpXS5mOwogICAgICAgICAgICAgICAgYW5zICs9IHZbaV0uajsKICAgICAgICAgICAgfWVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYW5zICs9KGRvdWJsZSltIC92W2ldLmYgKnZbaV0uajsKICAgICAgICAgICAgICAgIG0gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICsraTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlLjNsZlxuIixhbnMpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=