/*
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n=sc.nextInt(), m=sc.nextInt(), t=0;
int [] arrN = new int[1000001];
int [] arrMA = new int[100000], arrMB = new int[100000];
for(int i=1;i<=n;i++) {
arrN[i]=sc.nextInt();
}
for(int i=1;i<=m;i++) {
arrMA[i]=sc.nextInt();
arrMB[i]=sc.nextInt();
}
Arrays.sort(arrN);
for(int i=1;i<=m;i++) {
t=0;
for(int j=arrMA[i]; j<=arrMB[i];j++) {
t+=arrN[j];
}
System.out.println(t);
}
}
}
*/
// 2635 4062 4727 2055 2640
/*
*
* n의 약수를 구할때, 1 ~ n (x)
* 14 -> 3.xx
* 1 2 7 14
*/
//a의 약수들 + b의약수들 의 배열 생성 -> Arrays.sort(arr); arr 배열을 정렬
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int a=sc.nextInt(),b=sc.nextInt(),c=0;
int [] n = new int[100000];
for(int i=1,j=1; i<Math.sqrt(a)||j<Math.sqrt(b); i++,j++) {
if(a%i==0&&b%i!=0&&) {
n[c]=i;
n[c+1]=a/i;
c+=2;
}
if(b%j==0&&a%j!=0) {
n[c]=j;
n[c+1]=b/j;
c+=2;
}
if(a%i==0&&b%i==0) {
n[c]=i;
n[c+1]=a/i;
n[c+2]=b/i;
c+=3;
}
}
for(int i=0;i<c;i++)
System.out.print(n[i]+" ");
}
}