#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10;
int A[MAXN][MAXN], B[MAXN + 5][MAXN + 5];
int check(long long a1, long long b1, long long a2, long long b2) {
  long long A1 = a1, B1 = b1, A2 = a2, B2 = b2;
  while (A1 % 2 == 0) A[1][1]++, A1 /= 2;
  while (A1 % 3 == 0) A[1][2]++, A1 /= 3;
  while (B1 % 2 == 0) A[2][1]++, B1 /= 2;
  while (B1 % 3 == 0) A[2][2]++, B1 /= 3;
  while (A2 % 2 == 0) B[1][1]++, A2 /= 2;
  while (A2 % 3 == 0) B[1][2]++, A2 /= 3;
  while (B2 % 2 == 0) B[2][1]++, B2 /= 2;
  while (B2 % 3 == 0) B[2][2]++, B2 /= 3;
  if (A1 * B1 == A2 * B2)
    return 1;
  else
    return 2;
}
void solve(long long a1, long long b1, long long a2, long long b2) {
  int ok = check(a1, b1, a2, b2);
  if (ok == 2)
    printf("-1\n");
  else {
    int tail = 0;
    int ans = A[1][2] + A[2][2] - B[1][2] - B[2][2];
    if (ans > 0) {
      while (ans > 0) {
        if (A[1][2] > 0)
          a1 /= 3, a1 *= 2, A[1][2]--, tail++, ans--, A[1][1]++;
        else if (A[2][2] > 0)
          b1 /= 3, b1 *= 2, A[2][2]--, tail++, ans--, A[2][1]++;
      }
      int loc = A[1][1] + A[2][1] - B[1][1] - B[2][1];
      if (loc > 0) {
        while (loc > 0) {
          if (A[1][1] > 0)
            a1 /= 2, A[1][1]--, tail++, loc--;
          else if (A[2][1] > 0)
            b1 /= 2, A[2][1]--, tail++, loc--;
        }
      } else if (loc < 0) {
        loc = 0 - loc;
        while (loc > 0) {
          if (B[1][1] > 0)
            a2 /= 2, B[1][1]--, tail++, loc--;
          else if (B[2][1] > 0)
            b2 /= 2, B[2][1]--, tail++, loc--;
        }
      }
    } else if (ans == 0) {
      int loc = A[1][1] + A[2][1] - B[1][1] - B[2][1];
      if (loc > 0) {
        while (loc > 0) {
          if (A[1][1] > 0)
            a1 /= 2, A[1][1]--, tail++, loc--;
          else if (A[2][1] > 0)
            b1 /= 2, A[2][1]--, tail++, loc--;
        }
      } else if (loc < 0) {
        loc = 0 - loc;
        while (loc > 0) {
          if (B[1][1] > 0)
            a2 /= 2, B[1][1]--, tail++, loc--;
          else if (B[2][1] > 0)
            b2 /= 2, B[2][1]--, tail++, loc--;
        }
      }
    } else if (ans < 0) {
      ans = 0 - ans;
      while (ans > 0) {
        if (B[1][2] > 0)
          a2 /= 3, a2 *= 2, B[1][2]--, tail++, ans--, B[1][1]++;
        else if (B[2][2] > 0)
          b2 /= 3, b2 *= 2, B[2][2]--, tail++, ans--, B[2][1]++;
      }
      int loc = A[1][1] + A[2][1] - B[1][1] - B[2][1];
      if (loc > 0) {
        while (loc > 0) {
          if (A[1][1] > 0)
            a1 /= 2, A[1][1]--, tail++, loc--;
          else if (A[2][1] > 0)
            b1 /= 2, A[2][1]--, tail++, loc--;
        }
      } else if (loc < 0) {
        loc = 0 - loc;
        while (loc > 0) {
          if (B[1][1] > 0)
            a2 /= 2, B[1][1]--, tail++, loc--;
          else if (B[2][1] > 0)
            b2 /= 2, B[2][1]--, tail++, loc--;
        }
      }
    }
    printf("%d\n", tail);
    printf("%I64d %I64d\n%I64d %I64d\n", a1, b1, a2, b2);
  }
}
int main() {
  long long a1, a2, b1, b2;
  scanf("%I64d %I64d", &a1, &b1);
  scanf("%I64d %I64d", &a2, &b2);
  solve(a1, b1, a2, b2);
}
