#include <bits/stdc++.h>
using namespace std;
const int maxt = 10000;
int low[2], high[2], hp[2], imiss[2], rel[2];
double fail[2];
double sigma[2][maxt][202];
void get(int idx) {
  scanf("%d%d%d%d%d", &hp[idx], &rel[idx], &low[idx], &high[idx], &imiss[idx]);
  fail[idx] = imiss[idx] / 100.0f;
}
int main() {
  get(0);
  get(1);
  sigma[0][0][hp[1]] = sigma[1][0][hp[0]] = 1.0f;
  for (int idx = 0; idx < 2; idx++) {
    for (int i = 1; i < maxt; i++) {
      double pstate = 0.0f;
      for (int j = 0; j <= hp[idx ^ 1]; j++) {
        pstate += sigma[idx][i - 1][j];
        if (j) {
          if (imiss[idx]) {
            sigma[idx][i][j] += fail[idx] * pstate;
            sigma[idx][i][j + 1] -= fail[idx] * pstate;
          }
          if (imiss[idx] != 100) {
            double fire = (1 - fail[idx]) * pstate, multi = 0;
            int l = j - high[idx], r = j - low[idx] + 1;
            int split = r - l;
            if (l <= 0) {
              multi = 1 - l;
              l = 1;
            }
            if (r <= 0) {
              multi -= 1 - r;
              r = 1;
            }
            sigma[idx][i][l] += fire / split;
            sigma[idx][i][r] -= fire / split;
            sigma[idx][i][0] += multi * fire / split;
            sigma[idx][i][1] -= multi * fire / split;
          }
        }
      }
    }
  }
  double hasnotlost = 1.0f, win = 0.0f;
  int i = 1, j = 1;
  win += hasnotlost * sigma[0][1][0];
  hasnotlost -= sigma[1][1][0];
  while (1) {
    if (i * rel[0] <= j * rel[1]) {
      i++;
      win += hasnotlost * sigma[0][i][0];
    } else if (i * rel[0] > j * rel[1]) {
      j++;
      hasnotlost -= sigma[1][j][0];
      if (hasnotlost <= 0.0f) {
        break;
      }
    }
    if (i == maxt - 1 || j == maxt - 1) break;
  }
  while (i != maxt - 1) {
    i++;
    win += hasnotlost * sigma[0][i][0];
  }
  printf("%lf\n", win);
  return 0;
}
