#include <bits/stdc++.h>
using namespace std;
double f[5005][5005] = {};
double p[5005];
double o_p[5005];
int t[5005];
int n, T;
inline double POW(double x, int k) {
  double res = 1;
  while (k) {
    if (k & 1) {
      res *= x;
    }
    k >>= 1;
    x *= x;
  }
  return res;
}
int main() {
  int i, j;
  scanf("%d%d", &n, &T);
  int c;
  for (i = 0; i < n; ++i) {
    scanf("%d%d", &c, t + i);
    p[i] = (double)c / 100;
    o_p[i] = POW(1 - p[i], t[i]);
  }
  double temp;
  f[0][0] = 0;
  (f[0][0 + 2]) = 1;
  for (i = 0; i < T; ++i) {
    for (j = 0; j < n && j <= i; ++j) {
      (f[j + 1][i + 1 + 2]) += (f[i][j] + (f[j][i + 2])) * p[j];
      f[i + 1][j] += (f[i][j] + (f[j][i + 2])) * (1 - p[j]);
      if (i + t[j] <= T) {
        temp = (f[j][i + 2]) * o_p[j];
        (f[j + 1][i + t[j] + 2]) += temp;
        f[i + t[j]][j] -= temp;
      }
    }
  }
  double sum = 0, res = 0;
  for (i = 0; i <= n && i <= T; ++i) sum += (f[T][i] + (f[i][T + 2]));
  for (i = n; i < T; ++i) sum += f[i][n] + (f[n][i + 2]);
  for (i = 0; i <= n && i <= T; ++i) res += i * (f[T][i] + (f[i][T + 2]));
  for (i = n; i < T; ++i) res += n * (f[i][n] + (f[n][i + 2]));
  printf("%.8lf\n", res / sum);
  return 0;
}
