#include #include using namespace std; using namespace atcoder; using ll=long long; using ldub=long double; using lldub=__float128; using str=string; using mint=modint; template using tup2=tuple; template using tup3=tuple; template using tup4=tuple; template using tup5=tuple; template using tup6=tuple; template using tup7=tuple; template using vec=vector; template using vec2=vector>; template using vec3=vector>; template using vec4=vector>; template using vec5=vector>; template using vec6=vector>; template using que=queue; template using Pque=priority_queue; template using pque=priority_queue, greater>; struct Edge{ ll from,to,w=1,num=-1; }; using gvec=vector; using gvec2=vector; template bool chmax(T &a,T b){if(a bool chmin(T &a,T b){if(b>=1; } return res; } void solve(){ ll A,B,C,X,Y,Z; cin >> A >> B >> C >> X >> Y >> Z; ll a=(A-1)/Y,x=(X-1)/B; mint e=0; if(C<=Z){ if(a>x) e+=1-(mint)1/modpow(10,a-x); e+=mint(1)/modpow(10,abs(a-x))/11; } if(C>=Z){ x--; if(a>x) e+=1-(mint)1/modpow(10,a-x); e+=mint(1)/modpow(10,abs(a-x))/11; x++; } if(C==Z) e/=2; cout << e.val() << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); mint::set_mod(998244353); // mint::set_mod(1000000007); ll T=1; cin >> T; while(T--) solve(); return 0; }