// alex lo import java.util.*; class egyptian { private static final int _million = 1000000; static Scanner inputScanner; public static void main(String[] args) { inputScanner = new Scanner(System.in); while (inputScanner.hasNext()) { long m = inputScanner.nextInt(); long n = inputScanner.nextInt(); last = 2; if (m == 0) { break; } List output = new ArrayList(); long mMod = m; long nMod = n; long oldMMod = m; long oldNMod = n; while (mMod > 0) { long result = getNext(mMod, nMod); output.add(new Long(result)); mMod = (mMod * result) - nMod; nMod = nMod * result; long gcdNow = gcd(mMod, nMod); mMod /= gcdNow; nMod /= gcdNow; } for (int i = 0; i < output.size(); i++) { System.out.print(output.get(i).toString()); if (i < output.size() - 1) System.out.print(" "); } System.out.println();// "DONE"); } } private static long getNext(long mMod, long nMod) { long result = 0; for (long r = last; r < _million; r++) { if (mMod * r >= nMod) { // look ahead long newM = mMod * r - nMod; long newN = r * nMod; long theGcd = gcd(newM, newN); if ((newN / theGcd) > _million) continue; result = r; break; } } return result; } static long last = 2; private static long gcd(long a, long b) { while (b > 0) { long temp = b; b = a % b; a = temp; } return a; } }