#include using namespace std; #include using namespace atcoder; const long MOD = 998'244'353; const long inv11 = inv_mod(11, MOD); const long inv10 = inv_mod(10, MOD); const long inv2 = inv_mod(2, MOD); const long ten_inv11 = 10 * inv11 % MOD; long f(long x, long y){ if (x >= 2 && y >= 2) { return f(x - min(x - 1, y - 1), y - min(x - 1, y - 1)); } if (x >= 2 && y == 1) { long ret = 0; ret += pow_mod(inv10, x - 1, MOD) * f(1, 1) % MOD; ret += (1 - pow_mod(inv10, x - 1, MOD) + MOD) % MOD; ret %= MOD; return ret; } if (x == 1 && y >= 2) { return pow_mod(inv10, y - 1, MOD) * f(1, 1) % MOD; } if (x == 1 && y == 1) { return ten_inv11; } } int main() { int T; cin >> T; for (auto _ : views::iota(0, T)) { long Hc, Ac, Sc, Hg, Ag, Sg; cin >> Hc >> Ac >> Sc >> Hg >> Ag >> Sg; long tc = (Hc + Ag - 1) / Ag; long tg = (Hg + Ac - 1) / Ac; if (Sc > Sg) { println("{}", f(tc, tg)); } else if (Sg > Sc) { println("{}", (1 - f(tg, tc) + MOD) % MOD); } else { long ans = 0; ans += f(tc, tg); ans += 1 - f(tg, tc); ans *= inv2; ans %= MOD; println("{}", ans); } } }