Mirko has red and green apples to share with some of his friends, so that all of them receive the same number of red apples and also the same number of green apples. Mirko does not like apples himself so he doesn't want to be left with any apples afterward.
For example, if Mirko has red and green apples, he can divide them in three ways:
- One friend gets all red and all green apples;
- Two friends each receive red apples and green apples;
- Four friends each receive red and green apples.
Write a program that outputs all ways for Mirko to divide his apples. Assume Mirko has an infinite supply of friends to give apples to.
Input Specification
The first line contains two positive integers and separated by a space , the numbers of red and green apples.
Output Specification
For each possible distribution, output three integers , and on one line. The number is the number of friends that will receive apples. The numbers and tell how many red and green apples each of them will receive.
Each distribution needs to be output exactly once. You may output the distributions in any order.
Sample Input 1
4 8
Sample Output 1
1 4 8
2 2 4
4 1 2
Sample Input 2
15 12
Sample Output 2
3 5 4
1 15 12
Sample Input 3
42 105
Sample Output 3
1 42 105
3 14 35
7 6 15
21 2 5
Comments
"Assume that Mirko has an infinite supply of friends." Damn must be one cool kid man.