#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout << fixed << setprecision(10);
  int n, T;
  cin >> n >> T;
  vector<int> pr(n + 1, 0), t(n + 1, 0), pre(n + 1, 0);
  vector<long double> p(n + 1, 0);
  for (int i = 1; i <= n; i++) {
    cin >> pr[i] >> t[i];
    p[i] = (long double)(pr[i]) / (100.0);
    pre[i] += pre[i - 1] + t[i];
  }
  if (pre[n] <= T) {
    cout << n << endl;
    return 0;
  }
  int l, r;
  vector<vector<long double>> dp(2, vector<long double>(max(n + 1, T + 1), 0));
  dp[0][0] = 1;
  int k = 0;
  long double tot = 0;
  for (int i = 1; i <= n; i++) {
    long double val = dp[k][i - 1], np = 1;
    l = r = i - 1;
    for (int j = i; j <= T; j++) {
      if ((r - l + 1) < t[i]) {
        dp[k ^ 1][j] = (val * p[i]);
      } else {
        dp[k ^ 1][j] = (val - (dp[k][l] * np)) * p[i];
        dp[k ^ 1][j] += dp[k][l] * np;
      }
      r++;
      if (r - l + 1 <= (t[i])) {
        np *= (1 - p[i]);
      } else {
        val -= dp[k][l] * np;
        l++;
      }
      val *= (1 - p[i]);
      val += dp[k][j];
      tot += dp[k ^ 1][j];
    }
    fill(dp[k].begin(), dp[k].end(), 0);
    k ^= 1;
  }
  cout << tot << endl;
  return 0;
}
