#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")