#include <bits/stdc++.h>
using namespace std;
double go1(int x, int y);
double go2(int x, int y);
double dp1[2][5005];
double dp2[2][5005];
int n, t, a[5005];
double p[5005];
double dp[105][105][105];
bool v[105][105][105];
double go(int x, int y, int z) {
  if (v[x][y][z]) return dp[x][y][z];
  double &r = dp[x][y][z];
  v[x][y][z] = 1;
  if (y > n)
    r = n;
  else if (z == 0)
    r = go(x, y + 1, a[y + 1]);
  else if (x == t)
    r = y - 1;
  else {
    r = p[y] * go(x + 1, y + 1, a[y + 1]) + (1 - p[y]) * go(x + 1, y, z - 1);
  }
  return r;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> t;
  for (int i = 1; i <= n; i++) {
    cin >> p[i] >> a[i];
    p[i] /= 100.0;
  }
  for (int x = t; x >= 0; x--) {
    dp1[1][x] = n;
    dp2[1][x] = dp1[1][x] + (1 - p[n]) * dp2[1][x + 1];
  }
  cout << std::fixed << std::setprecision(10);
  for (int y = n; y >= 1; y--) {
    dp1[0][t] = dp2[0][t] = y - 1;
    double z = 1 - p[y];
    double po = pow(1 - p[y], a[y]);
    for (int x = t - 1; x >= 0; x--) {
      if (x + a[y] <= t)
        dp1[0][x] = p[y] * (dp2[1][x + 1] - dp2[1][x + a[y] + 1] * po) +
                    po * dp1[1][x + a[y]];
      else {
        dp1[0][x] = p[y] * dp2[1][x + 1] + z * (y - 1);
        z *= (1 - p[y]);
      }
      dp2[0][x] = dp1[0][x] + (1 - p[y - 1]) * dp2[0][x + 1];
    }
    for (int x = t; x >= 0; x--) {
      dp1[1][x] = dp1[0][x];
      dp2[1][x] = dp2[0][x];
    }
  }
  cout << dp1[0][0] << endl;
  return 0;
}
