#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1000000000")
using namespace std;
const int maxn = 5010;
double p[maxn];
int tm[maxn];
int n, t;
double dp[maxn][maxn];
int main() {
  scanf("%d %d", &n, &t);
  for (int i = 0; i < n; i++) {
    scanf("%lf %d", &p[i], &tm[i]);
    p[i] /= 100;
  }
  dp[0][t] = 1;
  for (int i = 1; i <= n; i++) {
    if (tm[i - 1] == 1) {
      for (int j = 0; j < t; j++) {
        dp[i][j] = dp[i - 1][j + 1];
      }
    } else {
      double now = 0;
      double x = pow(1 - p[i - 1], (double)tm[i - 1] - 2);
      for (int j = t; j >= 0; j--) {
        if (j + tm[i - 1] + 1 <= t) {
          now -= x * (1 - p[i - 1]) * dp[i - 1][j + tm[i - 1] + 1];
        }
        if (j + tm[i - 1] <= t) {
          now -= x * p[i - 1] * dp[i - 1][j + tm[i - 1]];
        }
        now *= (1 - p[i - 1]);
        now += dp[i - 1][j + 1] * p[i - 1];
        if (j + tm[i - 1] <= t) {
          now += dp[i - 1][j + tm[i - 1]] * x * (1 - p[i - 1]);
        }
        dp[i][j] = now;
      }
    }
  }
  double ans = 0;
  tm[n] = t + 1;
  for (int i = 0; i <= n; i++) {
    double now = 1;
    for (int j = 0; j < tm[i]; j++) {
      ans += i * now * dp[i][j];
      now *= (1 - p[i]);
    }
  }
  printf("%.8lf", ans);
  return 0;
}
