#include <iostream>
#include <cmath>
#include <string>
#include <cstring>
#include <iomanip>
#include <algorithm>
#include <chrono>
#include <vector>
#include <ctime>
#include<map>
#include <cstdlib>
#include <set>
#include <queue>
#include <stack>
#include<bitset>
#include<sstream>
using namespace std;
int n;
double p;
double a[1000001], b[000001];
double l = 0, r = 1e10;
double sum = 0;
int check(double ans)
{
double q = p * ans;
sum = 0;
for (int i = 1; i <= n; i++)
{
if (a[i] * ans <= b[i])
{
continue;
}
sum += (a[i] * ans - b[i]);
}
return sum <= q;
}
int main() {
cin >> n >> p;
for (int i = 1; i <= n; i++)
{
cin >> a[i] >> b[i];
sum += a[i];
}
if (sum <= p)
{
cout << -1.000000 << '\n';
return 0;
}
while (r - l > 1e-6)
{
double mid = (l + r) / 2;
if (check(mid))
{
l = mid;
}
else
{
r = mid;
}
}
cout << fixed << setprecision(10) << l << '\n';
return 0;
}