#include <bits/stdc++.h>
int dblcmp(double n) { return n < -1e-8 ? -1 : n > 1e-8; }
int max(int a, int b) { return a > b ? a : b; }
double dp[2][201];
int hp[2], dt[2], li[2], ri[2];
double pp[2], hit[2], win[2];
void gao() {
  memset(dp, 0, sizeof(dp));
  dp[0][hp[0]] = 1.0;
  dp[1][hp[1]] = 1.0;
  for (int i = 0; i < 2; i++) {
    int j = 1 - i;
    pp[j] = 1.0 * hit[j] / (ri[j] - li[j] + 1);
    for (int k = li[j]; k <= ri[j]; k++) {
      dp[i][max(hp[i] - k, 0)] += pp[j];
      dp[i][hp[i]] -= pp[j];
    }
  }
  int d = 1;
  win[0] = dp[1][0];
  win[1] = dp[0][0] * (1 - dp[1][0]);
  while (dblcmp(win[0] + win[1] - 1.0) < 0) {
    for (int i = 1; i >= 0; i--) {
      int j = 1 - i;
      if (d % dt[j] == 0) {
        double tt = dp[i][0];
        for (int k = 1; k <= 200; k++) {
          for (int v = li[j]; v <= ri[j]; v++) {
            dp[i][max(k - v, 0)] += pp[j] * dp[i][k];
          }
          dp[i][k] *= (1.0 - hit[j]);
        }
        if (j == 0) {
          win[0] += (1 - dp[0][0]) * (dp[1][0] - tt);
        } else {
          win[1] += (1 - dp[1][0]) * (dp[0][0] - tt);
        }
      }
    }
    d++;
  }
}
int main() {
  int t;
  while (scanf("%d %d %d %d %d", &hp[0], &dt[0], &li[0], &ri[0], &t) != EOF) {
    hit[0] = (100.0 - t) / 100.0;
    scanf("%d %d %d %d %d", &hp[1], &dt[1], &li[1], &ri[1], &t);
    hit[1] = (100.0 - t) / 100.0;
    win[0] = win[1] = 0.0;
    if (dblcmp(hit[1]) == 0 && dblcmp(hit[0]) != 0) {
      puts("1.0000");
      continue;
    } else if (dblcmp(hit[0] == 0)) {
      puts("0.0000");
      continue;
    }
    gao();
    printf("%.4f\n", win[0]);
  }
  return 0;
}
