#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
void qread(int &x) {
  int neg = 1;
  x = 0;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') neg = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') x = 10 * x + c - '0', c = getchar();
  x *= neg;
}
const int maxn = 5005;
int n, T;
double dp[maxn][maxn], pw[maxn], ans;
int main() {
  scanf("%d%d", &n, &T);
  dp[0][0] = 1;
  for (int(i) = 0; (i) < n; i++) {
    int x, t;
    scanf("%d%d", &x, &t);
    double p = double(x) / 100.0;
    double coef = pow(1 - p, t - 1.0);
    double tmp = dp[i][0];
    for (int(j) = 1; (j) <= T; j++) {
      if (j - t >= 0) tmp -= coef * dp[i][j - t];
      dp[i + 1][j] += tmp * p;
      if (j - t >= 0) dp[i + 1][j] += dp[i][j - t] * coef;
      tmp = tmp * (1 - p) + dp[i][j];
      ans += dp[i + 1][j];
    }
  }
  printf("%.10lf\n", ans);
  return 0;
}
