#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5000;
double qpow(double a, int p) {
  if (p == 0) return 1.0;
  double temp = qpow(a, p >> 1);
  temp *= temp;
  if (p & 1) temp = temp * a;
  return temp;
}
double dp[MAXN + 1][MAXN + 1], p[MAXN + 5];
int t[MAXN + 5];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int N, T;
  cin >> N >> T;
  for (int i = 0; i < N; i++) {
    cin >> p[i] >> t[i];
    p[i] /= 100.0;
  }
  double q = 1.0;
  dp[0][0] = 0.0;
  for (int i = 1; i < t[0]; i++) {
    dp[0][i] = q * p[0];
    q *= (1 - p[0]);
  }
  dp[0][t[0]] = q;
  for (int i = t[0] + 1; i <= T; i++) dp[0][i] = 0.0;
  for (int i = 1; i < N; i++) {
    dp[i][0] = 0.0;
    double sum = 0.0, power = qpow(1 - p[i], t[i] - 1);
    for (int j = 1; j <= T; j++) {
      sum = sum * (1 - p[i]) + dp[i - 1][j - 1] * p[i];
      if (j >= t[i]) {
        sum -= dp[i - 1][j - t[i]] * power * p[i];
        dp[i][j] = sum + dp[i - 1][j - t[i]] * power;
      } else {
        dp[i][j] = sum;
      }
    }
  }
  double ans = 0.0;
  p[N] = 0.0, t[N] = MAXN + 5;
  for (int i = 0; i < N; i++) {
    double power = 1.0;
    for (int j = T; j >= 0; j--) {
      int slack = T - j;
      if (slack >= t[i + 1]) break;
      ans += (i + 1) * dp[i][j] * power;
      power = power * (1 - p[i + 1]);
    }
  }
  cout << fixed << setprecision(10) << ans << "\n";
}
