#include<bits/stdc++.h>
using namespace std;
long long n,p,o1,o2,m1,m2;vector<double>a,b;double s;
int main(){
cin>>n>>p;
while(cin>>o1>>o2){
a.push_back(o1);b.push_back(o2);m1+=o1,m2+=o2;
}
if(p>=m1){
cout<<-1;return 0;
}
double lx=0,xl=3499975000,mid;//象形变量,lx是左边界,xl是右边界
while(lx<=xl){
mid=(lx+xl)/2;double h=0;
for(int i=0;i<n;i++){
if(b[i]<a[i]*mid)h+=a[i]*mid-b[i];
}h/=mid;
if(h>p)xl=mid-0.000001;
else s=mid,lx=mid+0.000001;
}if(s>3399975000)cout<<-1;//如果不加这一个特判,17就过不了
else cout<<s;
return 0;
}