#include <bits/stdc++.h>
using namespace std;
int n, a, b;
long long p;
struct m1 {
  float s;
  long long x;
  long long y;
} m[100010];
bool Com(m1 l, m1 r) { return l.s < r.s; }
int main() {
  scanf("%d %I64d", &n, &p);
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &a, &b);
    if (b == 0) {
      printf("%d", -1);
      return 0;
    }
    m[i].s = 1.0 * b / a;
    m[i].x = b;
    m[i].y = a;
  }
  if (n == 1) {
    if (-1.0 * m[0].x / (p - m[0].y) >= 0)
      printf("%f", -1.0 * m[0].x / (p - m[0].y));
    else
      printf("%d", -1);
    return 0;
  }
  sort(m, m + n, Com);
  for (int i = 1; i < n; i++) {
    m[i].x += m[i - 1].x;
    m[i].y += m[i - 1].y;
  }
  int lo = 0, h = n - 1, mi = (lo + h) >> 1;
  while (lo < h) {
    if (-1.0 * m[mi].x / (p - m[mi].y) < m[mi + 1].s &&
        -1.0 * m[mi].x / (p - m[mi].y) > 0)
      h = mi;
    else
      lo = mi + 1;
    mi = (lo + h) >> 1;
  }
  if (-1.0 * m[mi].x / (p - m[mi].y) < 0)
    printf("%d", -1);
  else
    printf("%f", -1.0 * m[mi].x / (p - m[mi].y));
}
