#include <stdio.h>
#include <math.h>
int v[10000],s,e;
void swap(int x,int y)
{
int temp;
temp=v[x];
v[x]=v[y];
v[y]=temp;
}
int pt(int start,int end)
{
s=start+1;
e=end;
while (s<=e)
{
while (v[start]>=v[s])
{
s++;
}
while (v[start]<v[e])
{
e--;
}
if (s<e)
{
swap(s,e);
}
}
swap(start,e);
return e;
}
void qs(int g,int h)
{
int j;
j=pt(g,h);
if (g<=h)
{
qs(g,j-1);
qs(j+1,h);
}
}
int main()
{
int a,b,k=1;
scanf("%d %d",&a,&b);
for (int i=1; i<=sqrt(b); i++)
{
if (a%i==0)
{
v[k]=i;
k++;
v[k]=a/i;
k++;
}
else if (b%i==0)
{
v[k]=i;
k++;
v[k]=b/i;
k++;
}
}
for (int i=1; i<=b; i++)
{
printf("%d \n",v[i]);
}
qs(1,k-1);
}