#include <bits/stdc++.h>
using namespace std;
ifstream fin("cube.txt");
const int EDGE = 7, N = 7;
const int V = 8, LOG = ceil(log2(V));
bool visited[V];
int parent[V];
;
int ran1k[V], ancestor[V], lazy[N];
vector<int> *adj;
int a[] = {1, 1, 1, 1, 1, 1, 1}, s[200];
int NEXT_NODE = 1, ir = 0;
int main() {
  ios::sync_with_stdio(false);
  int N, T, x, y;
  cin >> N >> T;
  double prob[N], ans[N + 1][T + 1];
  int time[N];
  for (int i = 0; i < N; ++i) {
    cin >> x >> y;
    prob[i] = (x) / 100.00;
    time[i] = (y);
  }
  fill(&ans[0][0], &ans[0][0] + (N + 1) * (T + 1), 0.000);
  for (int i = N - 1; i >= 0; i--) {
    double pro = 0.000;
    int secPassed = 1;
    double aux = pow(1 - prob[i], time[i] - 1);
    for (int j = T - 1; j >= 0; j--) {
      pro += prob[i] * (1 + ans[i + 1][j + 1]);
      if (secPassed < time[i]) {
        ans[i][j] += pro;
      } else {
        pro += aux * (1 - prob[i]) * (1 + ans[i + 1][j + time[i]]);
        ans[i][j] += pro;
        pro -= aux * (1 + ans[i + 1][j + time[i]]);
        ;
      }
      pro *= (1 - prob[i]);
      secPassed += 1;
    }
  }
  cout << std::setprecision(9) << fixed << ans[0][0];
  return 0;
}
