#include<iostream>
#include<cmath>
using namespace std;
using namespace std;
int check(double mid,long n,long p,long a[],long b[]){
double need=0;
for(long i=0;i<n;i++){
if(a[i]*mid>b[i]){
need+=a[i]*mid-b[i];
}
}
if(fabs(need-p*mid)<10e-3){
return 0;
}
else if(need>p*mid){
return -1;
}
else{
return 1;
}
}
int main(){
long n;
long p;
cin>>n>>p;
long a[n],b[n];
for(long i=0;i<n;i++){
cin>>a[i]>>b[i];
}
double left=0,right=pow(2,sizeof(long long)*8);
while(right-left>10e-4){
double mid=(left+right)/2;
int tip=check(mid,n,p,a,b);
if(tip==0){
cout<<mid<<endl;
break;
}
else if(tip<0){
right=mid;
}
else{
left=mid;
}
}
if(left>right||right==pow(2,sizeof(long long)*8)){
cout<<-1<<endl;
}
return 0;
}