#include <bits/stdc++.h>
using namespace std;
int n;
int t;
vector<double> compoundprob;
double answers[5000][5000];
vector<double> prob;
vector<int> limReagent;
double calcprob(int songindex, int transturn) {
  if (compoundprob[songindex] != -1.0 && transturn == limReagent[songindex] - 2)
    return compoundprob[songindex];
  if (transturn == 0) {
    return prob[songindex];
  }
  if (transturn == limReagent[songindex] - 2) {
    compoundprob[songindex] =
        (1 - prob[songindex]) * calcprob(songindex, transturn - 1);
    return compoundprob[songindex];
  }
  return (1 - prob[songindex]) * calcprob(songindex, transturn - 1);
}
double accum(int songindex, int timestep) {
  if (songindex == n || timestep == t) {
    return 0.0;
  }
  if (answers[songindex][timestep] != -1) {
    return answers[songindex][timestep];
  }
  if (prob[songindex] == 0.0) {
    if (t - timestep < limReagent[songindex]) {
      answers[songindex][timestep] = 0.0;
      return 0.0;
    }
    answers[songindex][timestep] =
        1 + accum(songindex + 1, timestep + limReagent[songindex]);
    return answers[songindex][timestep];
  }
  if (prob[songindex] == 1.0 || limReagent[songindex] == 1) {
    answers[songindex][timestep] = 1.0 + accum(songindex + 1, timestep + 1);
    return answers[songindex][timestep];
  }
  if (t - timestep >= limReagent[songindex]) {
    double oldsum = accum(songindex, timestep + 1);
    double extrapart =
        calcprob(songindex, limReagent[songindex] - 2) *
        (1 + accum(songindex + 1, timestep + limReagent[songindex]));
    double extrapart2 = 0;
    if (t - timestep > limReagent[songindex]) {
      extrapart2 =
          (calcprob(songindex, limReagent[songindex] - 1) / prob[songindex]) *
          (1 + accum(songindex + 1, timestep + limReagent[songindex] + 1));
    }
    double newpart =
        (1 + accum(songindex + 1, timestep + 1)) * calcprob(songindex, 0);
    double newpart2 =
        (1 + accum(songindex + 1, timestep + limReagent[songindex])) *
        (calcprob(songindex, limReagent[songindex] - 1) / prob[songindex]);
    answers[songindex][timestep] =
        (oldsum - extrapart - extrapart2) * (1 - calcprob(songindex, 0)) +
        newpart + newpart2;
    return answers[songindex][timestep];
  }
  double oldsum = accum(songindex, timestep + 1);
  double newpart = prob[songindex] * (1 + accum(songindex + 1, timestep + 1));
  answers[songindex][timestep] = oldsum * (1 - prob[songindex]) + newpart;
  return answers[songindex][timestep];
}
int main() {
  cin >> n >> t;
  limReagent = vector<int>(n);
  prob = vector<double>(n);
  compoundprob = vector<double>(n, -1.0);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < t; j++) {
      answers[i][j] = -1;
    }
  }
  for (int i = 0; i < n; i++) {
    cin >> prob[i] >> limReagent[i];
    prob[i] *= 0.01;
  }
  double acc = accum(0, 0);
  cout.precision(9);
  cout << acc << endl;
  return 0;
}
