#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int coin[] = {1000, 100, 1}; bool check(const vector& a, int d) { for(int i=0; i<3; ++i){ int x = min(a[i], d / coin[i]); d -= x * coin[i]; } return d == 0; } void sub(vector& a, int d) { for(int i=0; i<3; ++i){ int x = min(a[i], d / coin[i]); d -= x * coin[i]; a[i] -= x; } } void add(vector& a, const vector& b) { for(int i=0; i<3; ++i) a[i] += b[i]; } int main() { vector a(3), b(3), c(3); int db, dc; for(int i=0; i<3; ++i) cin >> a[i]; cin >> db; for(int i=0; i<3; ++i) cin >> b[i]; cin >> dc; for(int i=0; i<3; ++i) cin >> c[i]; int ret = 0; for(int i=0; i<2; ++i){ int cnt = 0; vector x = a; for(;;){ if(check(x, db)){ sub(x, db); add(x, b); ++ cnt; continue; } if(check(x, dc)){ sub(x, dc); add(x, c); ++ cnt; continue; } break; } ret = max(ret, cnt); swap(db, dc); b.swap(c); } cout << ret << endl; return 0; }