#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T SQR(T x) {
  return x * x;
}
template <class T>
inline string TOSTR(const T &x) {
  stringstream ss;
  ss << x;
  return ss.str();
}
int gcd(int a, int b) { return a ? gcd(b % a, a) : b; }
long long gcd(long long a, long long b) { return a ? gcd(b % a, a) : b; }
long long powmod(long long a, long long p, long long m) {
  long long r = 1;
  while (p) {
    if (p & 1) r = r * a % m;
    p >>= 1;
    a = a * a % m;
  }
  return r;
}
const int MOD = 1000 * 1000 * 1000 + 7;
const double PI = 3.1415926535897932384626433832795l;
double arr[2][50050];
double *prob;
double *prob2;
double ANSWER = 0;
int main() {
  int N, T;
  double pi;
  int ti;
  prob = arr[0];
  prob2 = arr[1];
  cin >> N >> T;
  prob[T] = 1.0;
  int min_T = T;
  int max_T = T;
  for (int(asd_nsong) = 0; (asd_nsong) < (int)(N); (asd_nsong)++) {
    int nsong = asd_nsong + 1;
    cin >> pi >> ti;
    pi /= 100.0;
    int min_T2 = 0x7fffffff;
    int max_T2 = -1;
    double p = pi;
    double q = 1 - p;
    double qpow = pow(q, ti - 2);
    double qpow_q = qpow * q;
    double qpow_p = qpow * p;
    if (p >= 1.0 - (1e-12)) {
      qpow = 0;
      qpow_q = 0;
      qpow_p = 0;
    }
    int ptr1 = max_T + 1;
    int ptr2 = max_T;
    double acc = 0, val = 0;
    int T2 = max_T;
    1;
    while (1) {
      T2--;
      if (T2 + ti < min_T) break;
      ptr1--;
      if (ptr2 - ptr1 >= ti - 1) {
        acc -= ((ptr2 >= min_T && ptr2 <= max_T) ? prob[ptr2] : 0) * qpow_p;
        ptr2--;
        if (ptr2 < -1) break;
      }
      acc = acc * q;
      if (ptr1 >= 0) {
        acc += prob[ptr1] * p;
      } else {
        if (acc < 1e-25 && qpow_q * N < 1e-25) break;
      }
      val = acc;
      if (T2 + ti <= max_T) val += prob[T2 + ti] * qpow_q;
      if (val > 0) {
        min_T2 = ((min_T2 < T2) ? min_T2 : T2);
      }
      if (T2 >= 0) {
        prob2[T2] = val;
      } else {
        1;
        ANSWER += val * (nsong - 1);
        1;
      }
    }
    max_T2 = max_T - 1;
    {
      __typeof(prob) tmp = prob;
      prob = prob2;
      prob2 = tmp;
    };
    min_T = ((0 > min_T2) ? 0 : min_T2);
    max_T = max_T2;
    1;
    if (max_T < 0) {
      break;
    }
  }
  for (int(i) = ((0 > min_T) ? 0 : min_T); (i) < (int)(max_T + 1); (i)++) {
    1;
    ANSWER += prob[i] * N;
    1;
  };
  cout << setprecision(10) << ANSWER << endl;
  return 0;
}
