#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”。
2 6 2 3
1 1 6 2 3
36 5 10 16
3 16 5 5 16
3 5 2 1
-1