#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 10,M = 1e7+715;
double h[M];
ll ft[N],bes[N],Ms = 1e7,Thr = 1000;
ll a,b,deep,cnt;
bool f;
#define CK ((a*1./b) < (h[fa]-h[fa-de+deep+2]))
#define Ck (fa < (a*(deep-de+1)/b))
void P();
string abut = ":%lld %lld %lld %lld\n";
void dfs(ll a,ll b,ll fa,ll de)
{
if(de == deep-1)
{
{
ll U = min(Ms*2/a,Ms*Ms/b);
for(int i = (b*4/a/a);i <=(U);i++)
{
ll ddd = (a*a*i*i-4*b*i);
ll sq = sqrt(ddd);
if(sq*sq == (ddd))
{
ll x2 = (sq+a*i)/2;
ll x1 = (a*i-sq)/2;
if((x2>x1))if(x2 < Ms)
{
f = 1;
ft[de] = x1;ft[de+1] = x2;Ms = x2;
memcpy(bes,ft,sizeof(bes));
return;
}
}
}
}
}
if(de == deep)
{
if(a == 1)
{
if(b > fa)if(b < Ms){
if((bes[deep] == 0) || (bes[deep] > ft[deep]))
{
ft[deep] = b;
f = 1;
memcpy(bes,ft,sizeof(bes));
Ms = bes[deep];
}
}
}
return;
}
if(de > deep)return ;
ll mma = min(Ms,(deep - de + 1) * b / a);
for(fa = max(fa+1,(ll)(1.*b/a+1-1e-8));(fa <= mma) && CK;fa++)
{
if(fa > Ms)return;
ll ya = a*fa;
if(ya < b)continue;
if(ya == b)
{
ft[de] = fa;
if((!f) || (bes[deep] > ft[deep]))
{
f = 1;
memcpy(bes,ft,sizeof(bes));
Ms = bes[deep];
}
return;
}
if(de == deep)continue;
ll aa,bb;
ft[de] = fa;
aa = ya-b;bb = b*fa;
ll c = aa,d = bb;
bb = __gcd(c,d);
c /= bb;d/=bb;
dfs(c,d,fa,de+1);
}
}
int main()
{
for(int i = 1e7;i > 1;i--)
{
h[i] = 1./i+h[i+1];
}
cin >> a >> b;
for(ll i = 0;;i++)
{
ll ms;
for(ms = 1e4;ms <= 1e7;ms*=10)
{
deep = i;
Ms = ms;
dfs(a,b,1,0);
if(f)
{
P();
return 0;
}
}
}
return 0;
}
void P()
{
for(ll i = 0;i <= deep;i++)
{
cout << bes[i] << ' ';
}
}