#include using namespace std; int n, m, n1, n2, s, mxbr; int a[2000][1000], v[1000] = {0}, nv[1000] = {0}, mv[1000] = {0}; bool is_ok(int i, int st) { if (st == 0) return 1; else if (i == n) return 0; for (int j = st / a[0][i]; j >= 0; j --) { nv[i] = j; if (is_ok(i+1, st - j * a[0][i])) return 1; } return 0; } int check() { int br = 0; for (int i = 0; i < m; i ++) { int sum = 0; for (int j = 0; j < n; j ++) { sum += nv[j] * a[i][j]; } if (sum == v[i]) br ++; } return br; } int main() { freopen("equations.out", "w", stdout); cin >> m >> n; for (int i = 0; i < m; i ++) { cin >> n1 >> n2; for (int j = 0; j < n; j ++) { cin >> a[i][j]; } } cin >> s; for (int i = 0; i < m; i ++) { cin >> v[i]; } cout << 1 << endl; for (int i = v[0] / a[0][1]; i >= 0; i --) { int br = check(); nv[0] = i; if (is_ok(1, v[0]) && br > mxbr) { mxbr = br; for (int j = 0; j < n; j ++) { mv[j] = nv[j]; nv[j] = 0; } } } cout << mv[0]; for (int i = 1; i < n; i ++) { cout << " " << mv[i]; } cout << endl; fclose(stdout); return 0; }