#include <bits/stdc++.h>
using namespace std;
long long int func2(long long int x, long long int a = 0) {
  long long int ans = 0;
  while (x % 2 == 0) {
    ans++;
    x = x / 2;
  }
  if (x % 3 != 0 && x != 1 && a == 1) return -1;
  return ans;
}
long long int func3(long long int x, long long int a = 0) {
  long long int ans = 0;
  while (x % 3 == 0) {
    x = x / 3;
    ans++;
  }
  if (x % 2 != 0 && x != 1 && a == 1) return -1;
  return ans;
}
long long int gcd(long long int a, long long int b) {
  if (a == 0)
    return b;
  else
    return gcd(b % a, a);
}
int main() {
  cin.tie(NULL);
  ios::sync_with_stdio(false);
  long long int A[8], B[8] = {};
  long long int x, y, x1, y1, num, ans, X, Y, i, a, b, c, d;
  cin >> x >> y >> x1 >> y1;
  A[4] = func3(x);
  A[5] = func3(y);
  A[6] = func3(x1);
  A[7] = func3(y1);
  A[0] = func2(x);
  A[1] = func2(y);
  A[2] = func2(x1);
  A[3] = func2(y1);
  num = gcd(x * y, x1 * y1);
  if (func3((x * y) / num, 1) == -1 || func3((x1 * y1) / num, 1) == -1 ||
      func2((x * y) / num, 1) == -1 || func2((x1 * y1) / num, 1) == -1) {
    cout << -1 << endl;
    return 0;
  }
  Y = func3((x * y) / num) - func3((x1 * y1) / num);
  X = func2((x * y) / num) - func2((x1 * y1) / num) + Y;
  if (Y >= 0) {
    if (Y <= A[4])
      B[4] = Y;
    else {
      B[4] = A[4];
      B[5] = Y - A[4];
    }
  } else {
    Y = -Y;
    if (Y <= A[6])
      B[6] = Y;
    else {
      B[6] = A[6];
      B[7] = Y - A[6];
    }
  }
  A[0] += B[4];
  A[1] += B[5];
  A[2] += B[6];
  A[3] += B[7];
  if (X >= 0) {
    if (X <= A[0])
      B[0] = X;
    else {
      B[0] = A[0];
      B[1] = X - A[0];
    }
  } else {
    X = -X;
    if (X <= A[2])
      B[2] = X;
    else {
      B[2] = A[2];
      B[3] = X - A[2];
    }
  }
  ans = abs(X) + abs(Y);
  cout << ans << endl;
  num = pow(2, B[0]) * pow(3, B[4]);
  x = x * pow(2, B[4]);
  x = x / num;
  num = pow(2, B[1]) * pow(3, B[5]);
  y = y * pow(2, B[5]);
  y = y / num;
  num = pow(2, B[2]) * pow(3, B[6]);
  x1 = x1 * pow(2, B[6]);
  x1 = x1 / num;
  num = pow(2, B[3]) * pow(3, B[7]);
  y1 = y1 * pow(2, B[7]);
  y1 = y1 / num;
  cout << x << " " << y << endl;
  cout << x1 << " " << y1 << endl;
  return 0;
}
