#include #include #include #include #include #include #include #include #include #include using namespace std; #define ull unsigned long long typedef pair Pair; struct app{ int price; int rent; bool sold; int soldAfter; }; void testCase() { int M, L, A1, A2, B1, B2; scanf("%d%d%d%d%d%d", &M, &L, &A1, &A2, &B1, &B2); app app1 = app(); app1.price = B1; app1.rent = A1; app1.sold = false; app1.soldAfter = -1; app app2 = app(); app2.price = B2; app2.rent = A2; app2.sold = false; app2.soldAfter = -1; int toPay = 0; toPay -= (A1 + A2) * M; for (int i = 0; i < 4; i++) { toPay += L; if (toPay <= 0) { if (!app1.sold) { toPay -= app1.rent * 12; } if (!app2.sold) { toPay -= app2.rent * 12; } continue; } if (!app1.sold && app1.price >= toPay && !app2.sold && app2.price >= toPay) { if (app1.rent < app2.rent) { app1.sold = true; app1.soldAfter = M + i * 12; toPay -= app1.price; app1.price = INT_MIN; } else { app2.sold = true; toPay -= app2.price; app2.price = INT_MIN; app2.soldAfter = M + i * 12; } } else if (!app1.sold && app1.price >= toPay) { app1.sold = true; app1.soldAfter = M + i * 12; toPay -= app1.price; app1.price = INT_MIN; } else if (!app2.sold && app2.price >= toPay) { app2.sold = true; app2.soldAfter = M + i * 12; toPay -= app2.price; app2.price = INT_MIN; } else { if (!app1.sold) { app1.sold = true; toPay -= app1.price; app1.price = INT_MIN; app1.soldAfter = M + i * 12; } if (!app2.sold) { app2.sold = true; app2.soldAfter = M + i * 12; toPay -= app2.price; app2.price = INT_MIN; } if (toPay > 0) { printf("%d %d %d\n", i, app1.soldAfter, app2.soldAfter); return; } } if (!app1.sold) { toPay -= app1.rent * 12; } if (!app2.sold) { toPay -= app2.rent * 12; } } printf("4 %d %d\n", app1.soldAfter, app2.soldAfter); } int main() { freopen("apartments.in", "r", stdin); freopen("apartments.out", "w", stdout); int T; scanf("%d", &T); for (int t = 0; t < T; t++) { testCase(); } return 0; } /* 1 0 1000 1 2 50 600 */