#include<iostream>
#include<cmath>
#include<iomanip>
const int Max=100001;
using namespace std;
double a[Max],b[Max];
int n,p;
double b_search(double l,double r){
double tot;
while(1){
double mid=(l+r)/2;
tot=mid*p;
for(int i=1;i<=n;i++){
if(mid*a[i]>b[i]){
tot-=(mid*a[i]-b[i]);
}
}
if(tot>1e-6){
l=mid;
}else if(tot<-1e-6){
r=mid;
}else{
break;
}
}
return (l+r)/2;
}
int main(){
double l=0,r=1e10;
cin>>n>>p;
int sum=0;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
sum+=a[i];
}
if(p>=sum){
cout<<-1;
return 0;
}
cout<<setprecision(9)<<b_search(l,r);
}