#include #include using namespace std; using ll = long long; int main(){ ios::sync_with_stdio(false); cin.tie(0); int T; cin >> T; while(T--){ ll n, m, a, b, c, d; cin >> n >> m >> a >> b >> c >> d; auto rec = [&](auto rec, ll n, ll m, ll a, ll b, ll c, ll d) -> ll { ll ofs = 0; assert(c >= 0 && d >= 0); ll dc = c / m, dd = d / m; // (Ax + B[(Cx + D) / M]) -> (A + [BC / M]) x + [BD / M] a += b * dc; c -= dc * m; ofs += b * dd; d -= dd * m; ll res = ofs + max(0ll, a * (n - 1) + b * ((c * (n - 1) + d) / m)); if((a >= 0) ^ (b >= 0) ^ true) return res; // floor((C(N-1) + D) / M) の最大値 ll num = (c * (n - 1) + d) / m; if(num == 0) return res; if(a < 0){ res = max(res, ofs + b + rec(rec, num, c, b, a, m, m + c - 1 - d)); }else{ res = max(res, ofs + rec(rec, num, c, b, a, m, m - d - 1)); } return res; }; cout << rec(rec, n, m, a, b, c, d) << '\n'; } }