#include<stdio.h>
#include<stdlib.h>
#include<cstring>
#include<iostream>
#define ll long long
using namespace std;
const int INF= 1e9;
ll a,b,c,dep=1,ans[11],d[11],flag;
ll gcd(ll a,ll b){
return b==0?a:gcd(b,a%b);
}
void print(int n)
{
for(int i=1;i<=n;i++)
cout<<ans[i]<<" ";
cout<<endl;
}
void dfs(ll a,ll b,int t){
if(t>dep)return;
if(a==1 && b>d[t-1]){
d[t]=b;
if(!flag || d[t]<ans[t]) memcpy(ans,d,sizeof(d));
// print(t);
flag=1;
return;
}
ll l=b/a;
if(d[t-1]>=l) l=d[t-1]+1;
ll r=(dep-t+1)*b/a;
if(INF<r) r=INF-1;
if(flag && ans[dep]<=r) r=ans[dep]-1;//
for(ll i=l;i<=r;i++){
d[t]=i;
ll gc=gcd(i*a-b,b*i);
dfs((i*a-b)/gc,b*i/gc,t+1);
}
}
int main(){
cin>>a>>b;c=gcd(a,b);
a/=c;b/=c;d[0]=1;//d用来记录?
if(a==1){cout<<b<<endl;return 0;}//
while(dep<=10){
dfs(a,b,1);
if(flag){
for(int i=1;i<=dep;i++)
printf("%lld ",ans[i]);
return 0;
}
dep++;
}
return 0;
}
10-30
537
