#include using namespace std; #define rep(i,a,b) for(ll i=a;i=b;i--) #define ll long long #define ull unsigned ll #define ld long double #define bl __int128_t #define fi first #define se second #define vel vector #define vvel vector #define pll pair #define vepll vector #define vvepll vector #define ves vector #define vem vector #define vvem vector #define pmm pair #define bl __int128_t #define cleout(i) cout<using PQ=priority_queue,greater>; // 上 右 下 左 vector di={-1, 0, 1, 0}; vector dj={ 0, 1, 0,-1}; vector dx={ 0, 1, 0,-1}; vector dy={ 1, 0,-1, 0}; vector ddx={ 1, 1, 1, 0, -1, -1, -1, 0 }; vector ddy={ 1, 0, -1, -1, -1, 0, 1, 1 }; ll inf=1000000000000000000;//1e18 // LLONG_MAX mt19937_64 rng((ull)chrono::steady_clock::now().time_since_epoch().count()); //[x^M]1/(1-x)^N=comb(N-1+M,M) ll cal(ll a,ll b,ll c,ll N){ ll ng=0; ll ok=10000000000000000; while(ok-ng>1){ bl mid=(ok+ng)/2; bl t=mid/b; //a*b+(a+c)*b+...+(a+c*(t-1))*b+(a+c*t)*(mid%b) //a*mid+(0+cb+2cb+...+(t-1)cb)+ct*(mid%b) bl cnt=(bl)a*mid+(bl)t*(t-1)/2*c*b+(bl)c*t*(mid%b); if(N<=cnt)ok=mid; else ng=mid; } return ok; } void _solve(){ ll N; cin>>N; ll a,b,c,d,e,f; cin>>a>>b>>c; cin>>d>>e>>f; ll x=cal(a,b,c,N); ll y=cal(d,e,f,N); if(x>_; else _=1; rep(__,0,_){ _solve(); } }