#include <bits/stdc++.h>
using namespace std;
struct tank {
  long hp;
  long dt;
  long double l;
  long double r;
  long double p;
};
int main() {
  tank we, enemy;
  cin >> we.hp >> we.dt >> we.l >> we.r >> we.p;
  cin >> enemy.hp >> enemy.dt >> enemy.l >> enemy.r >> enemy.p;
  if (we.p == 100) {
    cout << "0.0000000";
    return 0;
  }
  if (enemy.p == 100) {
    cout << "1.0000000";
    return 0;
  }
  long double wep = (100 - we.p) / 100;
  we.p /= 100;
  long double enemyp = (100 - enemy.p) / 100;
  enemy.p /= 100;
  vector<vector<long double> > dp(16 * enemy.hp,
                                  vector<long double>(enemy.hp + 1, 0));
  vector<long double> destroy_enemy(16 * we.dt * enemy.hp, 0);
  dp[0][enemy.hp] = 1;
  long double ver = 1 / (we.r - we.l + 1);
  for (long i = 0; i + 1 < dp.size(); i++) {
    for (long j = 0; j < enemy.hp + 1; j++) {
      for (long q = we.l; q <= we.r; q++) {
        dp[i + 1][j] += dp[i][j] * we.p * ver;
        if (j - q <= 0)
          destroy_enemy[i * we.dt] += dp[i][j] * wep * ver;
        else
          dp[i + 1][j - q] += dp[i][j] * wep * ver;
      }
    }
  }
  dp.assign(16 * we.hp, vector<long double>(we.hp + 1, 0));
  vector<long double> destroy_us(16 * enemy.dt * we.hp, 0);
  dp[0][we.hp] = 1;
  ver = 1 / (enemy.r - enemy.l + 1);
  for (long i = 0; i + 1 < dp.size(); i++) {
    for (long j = 0; j < we.hp + 1; j++) {
      for (long q = enemy.l; q <= enemy.r; q++) {
        dp[i + 1][j] += dp[i][j] * enemy.p * ver;
        if (j - q <= 0)
          destroy_us[i * enemy.dt] += dp[i][j] * enemyp * ver;
        else
          dp[i + 1][j - q] += dp[i][j] * enemyp * ver;
      }
    }
  }
  long double win = 0;
  long double lose = 1;
  for (long i = 0; i < min(destroy_us.size(), destroy_enemy.size()); i++) {
    win += lose * destroy_enemy[i];
    lose -= destroy_us[i];
  }
  cout << fixed << setprecision(10) << win;
}
