#include <iostream>
#include<vector>
using namespace std;
int pingshu(int x,int y,int a,int b){
int N=x+y;
int x1=x,x2=x;
int y1=y,y2=y;
while(x>=a||y>=b){
x1=x%a;
x2=x/a;
y1=y%b;
y2=y/b;
N+=x2+y2;
x=x1+y2;
y=y1+x2;
}
return N;
}
int findmax(vector<int>&v,int n){
int max=v[0];
for(int i=1;i<n;i++){
if(v[i]>max){
max=v[i];
}
}
return max;
}
int main() {
int t;
cin>>t;
for(int i=0;i<t;i++){
int n,a,b;
cin>>n>>a>>b;
vector<int>v(n+1,0);
for(int j=0;j<=n;j++){
v[j]=pingshu(j,n-j,a,b);
}
int k=findmax(v,n+1);
cout<<k<<endl;
}
}
// 64 位输出请用 printf("%lld")