#include int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int A[4], B[4], N, T; for (int i = 0; i < 4; i++) { std::cin >> A[i]; } std::cin >> N; for (int i = 0; i < 4; i++) { std::cin >> B[i]; } std::cin >> T; auto check = [&](int x0, int x1, int x2, int x3) -> void { int X[4] = {x0, x1, x2, x3}; int sum = 0, time = 0; for (int i = 0; i < 4; i++) { assert(0 <= X[i] && X[i] <= A[i]); sum += X[i]; time += B[i] * X[i]; } assert(sum == N); assert(time == T); std::cout << x0 << ' ' << x1 << ' ' << x2 << ' ' << x3 << '\n'; exit(0); }; if (B[0] == B[1] && B[1] == B[2] && B[2] == B[3]) { assert(A[0] + A[1] + A[2] + A[3] >= N); int x1 = A[1], x2 = A[2], x3 = A[3]; for (int x0 = 0; x0 <= A[0]; x0++) { if (x0 + x1 + x2 + x3 == N) { check(x0, x1, x2, x3); } } } else { int idx1 = 0, idx2 = 1; for (int i = 0; i < 4; i++) { for (int j = i + 1; j < 4; j++) { if (B[i] != B[j]) { idx1 = i, idx2 = j; } } } assert(idx1 < idx2); assert(B[idx1] != B[idx2]); int idx3 = -1, idx4 = -1; for (int i = 0; i < 4; i++) { if (i != idx1 && i != idx2) { idx4 = i; } } assert(idx4 != -1); for (int i = 0; i < 4; i++) { if (i != idx1 && i != idx2 && i != idx4) { idx3 = i; } } assert(idx3 != -1); assert(idx3 < idx4); for (int x3 = 0; x3 <= A[idx3]; x3++) { for (int x4 = 0; x4 <= A[idx4]; x4++) { int P = B[idx2] * (N - x3 - x4) - (T - B[idx3] * x3 - B[idx4] * x4); int Q = B[idx2] - B[idx1]; if (P % Q == 0 && 0 <= P / Q && P / Q <= A[idx1]) { int x1 = P / Q; int x2 = N - x1 - x3 - x4; int ans[4]; std::fill(ans, ans + 4, -1); for (int i = 0; i < 4; i++) { if (i == idx1) { ans[i] = x1; } if (i == idx2) { ans[i] = x2; } if (i == idx3) { ans[i] = x3; } if (i == idx4) { ans[i] = x4; } } check(ans[0], ans[1], ans[2], ans[3]); } } } } std::cout << "-1 -1 -1 -1\n"; }