#include #include #include using namespace std; using namespace atcoder; using ll = long long; //#define endl "\n"; using mint = atcoder::modint998244353; const int MAX = 510000; mint fac[MAX], finv[MAX], inv[MAX]; //1 <= r <= n <= 10^7くらい void setup_fac_finv_inv() { fac[0] = fac[1] = 1; finv[0] = finv[1] = 1; inv[1] = 1; for(int i = 2; i < MAX; i++){ fac[i] = fac[i - 1] * i; inv[i] = mint(1)/mint(i); finv[i] = finv[i - 1] * inv[i]; } } mint combi_mod(long long n, long long r){ if(n < r) return mint(0); if(n < 0 || r < 0) return mint(0); if(n < MAX){ //nもrも小さい時 return fac[n] * finv[r] * finv[n - r]; }else{ //nが大きい時.r<=10^7程度まで mint ret = mint(1); for(long long j = n; j > n - r; j--){ ret = ret * j; } return ret * finv[r]; } } mint power_mod(mint x, long long y){ if(y == 0) return mint(1); if(y == 1) return x; long long ty = y / 2; long long ry = y % 2; mint ret = power_mod(x, ty); ret = ret * ret; if(ry == 1) return ret * x; else return ret; } int main(){ ll Q; cin >> Q; for(int q = 1; q <= Q; q++){ ll ha, ac, sc, hg, ag, sg; cin >> ha >> ac >> sc >> hg >> ag >> sg; //残りa以下になるまで減らす ll t = min((hg - 1) / ac, (ha - 1) / ag); ha -= ag * t; hg -= ac * t; //cout << t << " " << ha << " " << hg << endl; mint ans = 0; //1ずつになるまで mint kakeru = 1; if((hg - 1) / ac > 0){ kakeru = power_mod(mint(1) / mint(10), (hg - 1) / ac); } if((ha - 1) / ag > 0){ ans += mint(1) - power_mod(mint(1) / mint(10), (ha - 1) / ag); kakeru = power_mod(mint(1) / mint(10), (ha - 1) / ag); } //cout << kakeru.val() << endl; if(sc == sg){ //1212 ans += kakeru * mint(1) / mint(2); } if(sc > sg){ ans += kakeru * mint(10) / mint(11); } if(sc < sg){ ans += kakeru * mint(1) / mint(11); } cout << ans.val() << endl; } return 0; }