#include <bits/stdc++.h>
template <typename T>
void read(T& val) {
  std::string tmp = typeid(val).name();
  if (strcmp(tmp.c_str(), "i") == 0)
    scanf("%d", &val);
  else if (strcmp(tmp.c_str(), "x") == 0)
    scanf("%I64d", &val);
  else if (strcmp(tmp.c_str(), "d") == 0)
    scanf("%lf", &val);
  else if (tmp.length() > 2 && tmp.back() == 'c')
    scanf("%s", val);
  else if (strcmp(tmp.c_str(), "c") == 0)
    scanf("%c", &val);
}
template <typename T, typename... Targs>
void read(T& val, Targs&... Fargs) {
  read(val);
  read(Fargs...);
}
template <typename T>
void print(T val) {
  std::string tmp = typeid(val).name();
  if (strcmp(tmp.c_str(), "i") == 0)
    printf("%d", val);
  else if (strcmp(tmp.c_str(), "x") == 0)
    printf("%I64d", val);
  else if (strcmp(tmp.c_str(), "d") == 0)
    printf("%.15f", val);
  else if (strcmp(tmp.c_str(), "c") == 0)
    printf("%c", val);
  else if (tmp.length() > 2 && tmp.back() == 'c')
    printf("%s", val);
}
template <typename T, typename... Targs>
void print(T val, Targs... Fargs) {
  print(val);
  print(Fargs...);
}
const double pi = acos(-1);
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
const int MAXN = 5e3 + 5;
const double eps = 1e-9;
using namespace std;
pair<double, int> a[MAXN];
double dp[MAXN][MAXN];
double bin_pow(double a, int b) {
  double ret = 1;
  while (b) {
    if (b & 1) ret *= a;
    a *= a;
    b /= 2;
  }
  return ret;
}
int main() {
  int n, t;
  read(n, t);
  for (int i = 1; i <= n; i++) {
    int x, y;
    read(x, y);
    a[i] = {(1. * (double)x) / 100., y};
  }
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    double val = dp[i][1] = dp[i - 1][0] * a[i].first;
    int l = 0;
    for (int j = 2; j <= t; j++) {
      while (l < j - a[i].second) {
        val -=
            dp[i - 1][l] * bin_pow(1 - a[i].first, j - 1 - l - 1) * a[i].first;
        l++;
      }
      val *= (1 - a[i].first);
      val += dp[i - 1][j - 1] * a[i].first;
      dp[i][j] = val;
    }
    for (int j = 1; j <= t; j++)
      if (j >= a[i].second)
        dp[i][j] +=
            dp[i - 1][j - a[i].second] * bin_pow(1 - a[i].first, a[i].second);
  }
  double ans = 0;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= t; j++) ans += dp[i][j];
  print(ans);
  return 0;
}
