#!/usr/bin/env pypy3 # -*- coding: utf-8 -*- def mwf(n: int, m: int, a: int, b: int, c: int, d: int) -> int: assert n > 0 and m > 0 q, c = divmod(c, m) a += b * q q, d = divmod(d, m) s = b * q assert 0 <= c < m and 0 <= d < m y_max = (c * (n - 1) + d) // m r = max(s, s + a * (n - 1) + b * y_max) if y_max * a * b >= 0: return r else: s += (a + b) * (a < 0) return max(r, s + mwf(y_max, c, b, a, m, (m - d - 1))) def solve(): import sys input = sys.stdin.readline T = int(input()) for _ in range(T): N, M, A, B, C, D = map(int, input().split()) assert 0 < N and 0 < M ans = mwf(N, M, A, B, C, D) print(ans) if __name__ == '__main__': solve()