#include using namespace std; #define REP(i, n) for (int i = (int)(0); i < (int)(n); ++i) #define REPS(i, n) for (int i = (int)(1); i <= (int)(n); ++i) #define RREP(i, n) for (int i = ((int)(n)-1); i >= 0; i--) #define RREPS(i, n) for (int i = ((int)(n)); i > 0; i--) #define IREP(i, m, n) for (int i = (int)(m); i < (int)(n); ++i) #define IREPS(i, m, n) for (int i = (int)(m); i <= (int)(n); ++i) #define FOR(e, c) for (auto &e : c) #define SORT(v, n) sort(v, v + n); #define VSORT(v) sort(v.begin(), v.end()); #define RVISORT(v) sort(v.begin(), v.end(), greater()); #define ALL(v) v.begin(), v.end() using VI = vector; using VVI = vector; using PII = pair; using ll = long long; using ul = unsigned long; typedef long long ll; template void chmax(T& a, C b){ a>b?:a=b; } template void chmin(T& a, C b){ a= mod) x -= mod; return *this; } mint& operator-=(const mint a) { if ((x += mod-a.x) >= mod) x -= mod; return *this; } mint& operator*=(const mint a) { (x *= a.x) %= mod; return *this; } mint operator+(const mint a) const { mint res(*this); return res+=a; } mint operator-(const mint a) const { mint res(*this); return res-=a; } mint operator*(const mint a) const { mint res(*this); return res*=a; } }; mint c[4005][4005]; void init() { c[0][0] = 1; for (int i = 0; i <= 4000; i++) { for (int j = 0; j <= i; j++) { c[i+1][j] += c[i][j]; c[i+1][j+1] += c[i][j]; } } } mint comb(int n, int k) { return c[n][k]; } bool IsPrime(int num) { if (num < 2) return false; else if (num == 2) return true; else if (num % 2 == 0) return false; double sqrtNum = sqrt(num); for (int i = 3; i <= sqrtNum; i += 2) { if (num % i == 0) { return false; } } return true; } int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); //init(); ll p,q,r,a,b,c; cin>>p>>q>>r>>a>>b>>c; ll left = max(max(p*(a-1),q*(a+b-1)),r*(a+b+c-1)) + 1; ll right = min(min(p*a,q*(a+b)),r*(a+b+c)); if(left>right){ cout << -1 << endl; }else{ cout << left << " " << right << endl; } return 0; }