#include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); int T; cin >> T; assert(1 <= T && T <= 100'000); while (T--) { long long N, X, Y, A, B; cin >> N >> X >> Y >> A >> B; assert(1 <= N && N <= 1'000'000'000); assert(-1'000'000'000 <= min({X, Y, A, B}) && max({X, Y, A, B}) <= 1'000'000'000); assert(N <= 10); if (X + Y < 0) { if (X + (N - 1) * A + Y < 0) { cout << X + N * A << " " << Y << endl; continue; } long long c = (- X - Y + A - 1) / A; N -= c; X += c * A; } if (X + Y - (N - 1) * B >= 0) { cout << X << " " << Y - N * B << endl; continue; } long long c = (X + Y) / B + 1; N -= c; Y -= c * B; if (X + (N - 1) * A + Y < 0) { cout << X + N * A << " " << Y << endl; continue; } c = N / (A + B); X += A * B * c; Y -= A * B * c; N %= A + B; for (int i = 30; i >= 0; i--) { long long k = 1 << i; long long s = (X + Y + k * A); long long l = (s + B) / B; if (k + l <= N) { N -= k + l; X += A * k; Y -= B * l; } } while (N) { if (X + Y < 0) { long long c = min(N, (- X - Y + A - 1) / A); N -= c; X += c * A; } else{ long long c = min(N, (X + Y) / B + 1); N -= c; Y -= c * B; } } cout << X << " " << Y << endl; } return 0; }