#2176. Chocolate

Chocolate

Description


Polycarpus喜欢给Paraskevi送礼物。他买了两块巧克力,每块的形状都是一个分段的长方形(由若干个小正方形组成)。第一块是a1×b1段大,第二块是a2×b2段大。

Polycarpus想在午休时把其中一块巧克力给Paraskevi,自己吃另一块。此外,他还想证明Polycarpus的思想和Paraskevi的美貌是一样的,所以这两个巧克力要有相同数量的方块。

为了使两块巧克力有相同数量的方块,Polycarpus每分钟吃一小块巧克力。每分钟他都要做以下事情。

他要么把一块巧克力恰好掰成两半(垂直或水平),并恰好吃下一半的巧克力。
或者他把一块巧克力切成三分之一(垂直或水平),然后吃掉三分之一的巧克力。
在第一种情况下,他只剩下一半的巧克力,而在第二种情况下,他只剩下三分之二的巧克力。

这两种情况并不总是可能的,有时Polycarpus不能吃掉一半或三分之一。例如,如果条形图是16×23,那么Polycarpus可以切下一半,但不能切下三分之一。如果条形图是20×18,那么Polycarpus既可以切掉一半,也可以切掉三分之一。如果条形图是5×7,那么Polycarpus就不能切掉一半或三分之一。

要使两个巧克力由相同数量的方块组成,Polycarpus需要的最少分钟数是多少?不仅要找出所需的最少分钟数,而且要找出在这个过程中巧克力的可能大小。

输入
输入的第一行包含整数a1,b1(1≤a1,b1≤10^9)--第一个巧克力的初始尺寸。输入的第二行包含整数a2,b2 (1≤a2,b2≤10^9) - 第二块巧克力的初始尺寸。

你可以使用int64(Pascal)、long long(C++)、long(Java)类型的数据来处理大整数(超过2^31-1)。

输出
在第一行打印m - 所寻求的最小分钟数。在第二行和第三行中,打印在m分钟内调平后的条形图的可能尺寸。使用与输入格式相同的格式打印尺寸(中间有个空格)如果有多个解决方案,打印其中任何一个。

如果没有解决方案,则打印“-1”。

Examples
Input
2 6
2 3
Output
1
1 6
2 3
Input
36 5
10 16
Output
3
16 5
5 16
Input
3 5
2 1
Output
-1

Source

未分类