#if __has_include() #include #else #include #include #endif using namespace std; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) #define printYesNo(is_ok) puts(is_ok ? "Yes" : "No") #define SORT(v) sort(v.begin(), v.end()) #define RSORT(v) sort(v.rbegin(), v.rend()) #define REVERSE(v) reverse(v.begin(), v.end()) template void printVector(const Container &v, char delimiter = ' ') { for (auto itr = v.begin(); itr != v.end(); itr++) { if (itr != v.begin()) { cout << delimiter; } cout << *itr; } cout << endl; } template void printlnVector(const Container &v) { printVector(v, '\n'); } void solve() { vector H(2), A(2), S(2); rep(i, 2) { cin >> H[i] >> A[i] >> S[i]; } vector k = { (H[1] + A[0] - 1) / A[0], (H[0] + A[1] - 1) / A[1], }; atcoder::modint998244353 one_11 = atcoder::modint998244353{1} / atcoder::modint998244353{11}; atcoder::modint998244353 ten_11 = atcoder::modint998244353{10} / atcoder::modint998244353{11}; atcoder::modint998244353 one_10 = atcoder::modint998244353{1} / atcoder::modint998244353{10}; atcoder::modint998244353 one_100 = atcoder::modint998244353{1} / atcoder::modint998244353{100}; atcoder::modint998244353 nine_10 = atcoder::modint998244353{9} / atcoder::modint998244353{10}; long long delta_k = max(k[0], k[1]) - min(k[0], k[1]); atcoder::modint998244353 ans = 1; if (S[0] > S[1]) { if (k[0] <= k[1]) { // cout << "???" << endl; ans = atcoder::modint998244353{9} * ((one_10 * (1 - one_10.pow(delta_k)) / (1 - one_10)) + (one_10.pow(delta_k + 1) / (1 - one_100))); } else { // cout << "!!!" << endl; ans = one_10.pow(delta_k) * 9 * one_10 / (1 - one_100); } } if (S[0] < S[1]) { if (k[0] <= k[1]) { // cout << "!!!" << endl; ans = one_10.pow(delta_k) * 9 * one_10 / (1 - one_100); } else { // cout << "???" << endl; ans = atcoder::modint998244353{9} * ((one_10 * (1 - one_10.pow(delta_k)) / (1 - one_10)) + (one_10.pow(delta_k + 1) / (1 - one_100))); } ans = 1 - ans; } if (S[0] == S[1]) { if (k[0] <= k[1]) { // cout << "!!!" << endl; ans = atcoder::modint998244353{1} - atcoder::modint998244353{1} / atcoder::modint998244353{10}.pow(delta_k) / 2; } else { // cout << "???" << endl; ans = atcoder::modint998244353{1} / atcoder::modint998244353{10}.pow(delta_k) / 2; } } cout << ans.val() << endl; } int main() { int T = 1; cin >> T; while (T--) { solve(); } return 0; }