#include #include #define endl '\n' using namespace std; using ll = long long; template struct modint { ll v = 0; ll val() const { return v; } modint(ll v = 0) : v((v % M + M) % M) {} modint operator+() const { return *this; } modint operator-() const { return modint() - *this; } modint& operator+=(const modint &r) { if ((v += r.v) >= M) v -= M; return *this; } modint& operator-=(const modint &r) { if ((v += M - r.v) >= M) v -= M; return *this; } modint& operator*=(const modint &r) { v *= r.v; v %= M; return *this; } modint& operator/=(const modint &r) { return *this *= r.inv(); } modint& operator++() { (*this) += 1; return *this; } modint& operator--() { (*this) -= 1; return *this; } modint operator++(int) { modint res = *this; ++(*this); return res; } modint operator--(int) { modint res = *this; --(*this); return res; } modint pow(ll n) const { modint x = *this; modint res = 1; while (n > 0) { if (n & 1) res *= x; x *= x; n >>= 1; } return res; } modint inv() const { return pow(M-2); } friend modint operator+(const modint &l, const modint &r) { return modint(l) += r; } friend modint operator-(const modint &l, const modint &r) { return modint(l) -= r; } friend modint operator*(const modint &l, const modint &r) { return modint(l) *= r; } friend modint operator/(const modint &l, const modint &r) { return modint(l) /= r; } friend bool operator==(const modint &l, const modint &r) { return l.v == r.v; } friend bool operator!=(const modint &l, const modint &r) { return l.v != r.v; } }; using mint = modint<998244353>; ll ceildiv(ll a, ll b) { assert(b != 0); ll q = a / b; ll r = a % b; if (r != 0 && ((a > 0) == (b > 0))) q++; return q; } void solve() { ll h1, a1, s1, h2, a2, s2; cin >> h1 >> a1 >> s1 >> h2 >> a2 >> s2; auto f = [](ll h1, ll a1, ll h2, ll a2) -> mint { ll atk_cnt1 = ceildiv(h2, a1) - 1; ll atk_cnt2 = ceildiv(h1, a2) - 1; ll lead = 0; bool flip = false; if (atk_cnt1 <= atk_cnt2) { lead = atk_cnt2 - atk_cnt1; } else { lead = (atk_cnt1 - 1) - atk_cnt2; flip = true; swap(h1, h2); swap(a1, a2); } mint p = mint(10).inv().pow(lead); mint q = (mint(1) - p) + p * (mint(10) / mint(11)); return flip ? mint(1) - q : q; }; if (s1 == s2) { mint ans = f(h1, a1, h2, a2) / mint(2) + (mint(1) - f(h2, a2, h1, a1)) / mint(2); cout << ans.val() << endl; return; } else if (s1 > s2) { cout << f(h1, a1, h2, a2).val() << endl; } else { cout << (mint(1) - f(h2, a2, h1, a1)).val() << endl; } return; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll T = 1; cin >> T; while (T--) { solve(); } return 0; }