#include <iostream>
#include <vector>
#include <cmath>
#include <limits>
using namespace std;
vector <int> t, v, x;
int mt = 0, l;
double dx(double rt) {
double dx = 0, dt = 0, i = 0;
bool f = true;
while (f) {
if ((i > 0 && dt + t[i] - t[i-1] >= rt) || (dt + t[i] >= rt && !i)){
dx += v[i] * (rt - dt);
f = false;
} else {
dt += (i)?t[i] - t[i-1]:t[0];
dx += x[i++];
}
}
return dx;
}
int check(double m) {
double mn = numeric_limits<double>::max();
if (dx(m) < l) return 0;
for (int i = 0; i < t.size(); i++){
if (t[i] >= m){
double s1 = double(x[i] - dx(t[i]-m));
double s2 = (t[i] + m <= mt)?double(dx(t[i]+m) - x[i]):l;
mn = min(mn, min(s1, s2));
}
}
if (mn < l) return false;
else return true;
}
double srch(double l, double r) {
while (r - l > 0.00001) {
double mid = 1. * (l + r) / 2;
if (check(mid)) r = mid;
else l = mid;
}
return r;
}
int main() {
int n, a, b;
double at = 0;
cin >> l >> n;
for (int i = 0; i < n; ++i) {
cin >> a >> b;
t.push_back(a);
v.push_back(b);
x.push_back(t[i] * v[i]);
if (i) {
t[i] += t[i-1];
x[i] += x[i-1];
}
}
mt = t[n-1];
cout << srch(0, double(mt)) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxsaW1pdHM+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvciA8aW50PiB0LCB2LCB4OwppbnQgbXQgPSAwLCBsOwoKZG91YmxlIGR4KGRvdWJsZSBydCkgewoJZG91YmxlIGR4ID0gMCwgZHQgPSAwLCBpID0gMDsKCWJvb2wgZiA9IHRydWU7CiAgICB3aGlsZSAoZikgewogICAgICAgIGlmICgoaSA+IDAgJiYgZHQgKyB0W2ldIC0gdFtpLTFdID49IHJ0KSB8fCAoZHQgKyB0W2ldID49IHJ0ICYmICFpKSl7CiAgICAgICAgICAgIGR4ICs9IHZbaV0gKiAocnQgLSBkdCk7CiAgICAgICAgICAgIGYgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgIAlkdCArPSAoaSk/dFtpXSAtIHRbaS0xXTp0WzBdOwogICAgICAgIAlkeCArPSB4W2krK107CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGR4Owp9CgppbnQgY2hlY2soZG91YmxlIG0pIHsKCWRvdWJsZSBtbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOwogICAgaWYgKGR4KG0pIDwgbCkgcmV0dXJuIDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHQuc2l6ZSgpOyBpKyspewogICAgICAgIGlmICh0W2ldID49IG0pewogICAgICAgICAgICBkb3VibGUgczEgPSBkb3VibGUoeFtpXSAtIGR4KHRbaV0tbSkpOwogICAgICAgICAgICBkb3VibGUgczIgPSAodFtpXSArIG0gPD0gbXQpP2RvdWJsZShkeCh0W2ldK20pIC0geFtpXSk6bDsKICAgICAgICAgICAgbW4gPSBtaW4obW4sIG1pbihzMSwgczIpKTsKICAgICAgICB9CiAgICB9CiAgICBpZiAobW4gPCBsKSByZXR1cm4gZmFsc2U7CiAgICBlbHNlIHJldHVybiB0cnVlOwp9Cgpkb3VibGUgc3JjaChkb3VibGUgbCwgZG91YmxlIHIpIHsKCXdoaWxlIChyIC0gbCA+IDAuMDAwMDEpIHsKCQlkb3VibGUgbWlkID0gMS4gKiAobCArIHIpIC8gMjsKCQlpZiAoY2hlY2sobWlkKSkgciA9IG1pZDsKCQllbHNlIGwgPSBtaWQ7Cgl9CglyZXR1cm4gcjsKfQoKaW50IG1haW4oKSB7CglpbnQgbiwgYSwgYjsKCWRvdWJsZSBhdCA9IDA7CgljaW4gPj4gbCA+PiBuOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQljaW4gPj4gYSA+PiBiOwoJCXQucHVzaF9iYWNrKGEpOwoJCXYucHVzaF9iYWNrKGIpOwoJCXgucHVzaF9iYWNrKHRbaV0gKiB2W2ldKTsKCQlpZiAoaSkgewoJCQl0W2ldICs9IHRbaS0xXTsKCQkJeFtpXSArPSB4W2ktMV07CgkJfQoJfQoJbXQgPSB0W24tMV07Cgljb3V0IDw8IHNyY2goMCwgZG91YmxlKG10KSkgPDwgZW5kbDsKfQ==