#include<bits/stdc++.h>
using namespace std;
int n;
double t;
#define err 0.0000001
vector<pair<double,double> > seg;
double co;
bool ok(double ans)
{
co=0.0;
for(int i=0; i<n; i++)
{
if((ans+seg[i].second)<=0) return false;
co+=(seg[i].first)/(ans+seg[i].second);
}
if(abs(co-t)<=err) return true;
else return false;
}
int main()
{
cin>>n>>t;
double x,y;
for(int i=0; i<n; i++)
{
cin>>x>>y;
seg.push_back(make_pair(x,y));
}
double low=-1000.0,hi=1000.0;
double mid=(hi+low)/2.0;
while(!ok(mid))
{
// cout<<mid<<" "<<co<<endl;
if(abs(co-0)<=err)
{
low=mid;
}
else if(co<t)
{
hi=mid;
}
else if(co>t)
{
low=mid;
}
mid=(hi+low)/2.0;
}
// ok(-0.408653377);
printf("%.6f\n",mid);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG47CmRvdWJsZSB0OwojZGVmaW5lIGVyciAwLjAwMDAwMDEKdmVjdG9yPHBhaXI8ZG91YmxlLGRvdWJsZT4gPiBzZWc7CmRvdWJsZSBjbzsKYm9vbCBvayhkb3VibGUgYW5zKQp7CiAgICBjbz0wLjA7CiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgaWYoKGFucytzZWdbaV0uc2Vjb25kKTw9MCkgcmV0dXJuIGZhbHNlOwogICAgICAgIGNvKz0oc2VnW2ldLmZpcnN0KS8oYW5zK3NlZ1tpXS5zZWNvbmQpOwogICAgfQoKICAgIGlmKGFicyhjby10KTw9ZXJyKSByZXR1cm4gdHJ1ZTsKICAgIGVsc2UgcmV0dXJuIGZhbHNlOwoKfQppbnQgbWFpbigpCnsKCiAgICBjaW4+Pm4+PnQ7CiAgICBkb3VibGUgeCx5OwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGNpbj4+eD4+eTsKICAgICAgICBzZWcucHVzaF9iYWNrKG1ha2VfcGFpcih4LHkpKTsKICAgIH0KICAgIGRvdWJsZSBsb3c9LTEwMDAuMCxoaT0xMDAwLjA7CiAgICBkb3VibGUgbWlkPShoaStsb3cpLzIuMDsKCiAgICB3aGlsZSghb2sobWlkKSkKICAgIHsKICAgICAgICAvLyBjb3V0PDxtaWQ8PCIgIjw8Y288PGVuZGw7CiAgICAgICAgaWYoYWJzKGNvLTApPD1lcnIpCiAgICAgICAgewogICAgICAgICAgICBsb3c9bWlkOwogICAgICAgIH0KICAgICAgICBlbHNlICBpZihjbzx0KQogICAgICAgIHsKICAgICAgICAgICAgaGk9bWlkOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGNvPnQpCiAgICAgICAgewogICAgICAgICAgICBsb3c9bWlkOwogICAgICAgIH0KICAgICAgICBtaWQ9KGhpK2xvdykvMi4wOwogICAgfQogICAgLy8gb2soLTAuNDA4NjUzMzc3KTsKICAgIHByaW50ZigiJS42ZlxuIixtaWQpOwoKfQo=