#include <bits/stdc++.h>
using namespace std;
long long gcd(long long x, long long y) {
  if (x == 0) return y;
  return gcd(y % x, x);
}
long long powmod(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = powmod(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
long long modif(long long x, long long m) { return (powmod(x, m - 2, m)); }
bool fa(vector<long long> &x, vector<long long> &y) { return x[0] < y[0]; }
bool fa1(vector<long long> &x, vector<long long> &y) { return x[1] < y[1]; }
bool f1(pair<long long, long long> &x, pair<long long, long long> &y) {
  return x.second > y.second;
}
bool f2(pair<long long, long long> &x, pair<long long, long long> &y) {
  return x.first > y.first;
}
bool f3(long long &x, long long &y) { return x > y; }
bool meow(vector<long long> &x, vector<long long> &y) {
  long long h1 = max(x[3], x[2]);
  long long h2 = max(y[3], y[2]);
  return h1 < h2;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long a, b, x, y;
  cin >> a >> b >> x >> y;
  long long c = a * b;
  long long d = x * y;
  long long f2 = 0, f3 = 0, s2 = 0, s3 = 0;
  while (c % 2 == 0) {
    f2++;
    c /= 2;
  }
  while (c % 3 == 0) {
    f3++;
    c /= 3;
  }
  while (d % 2 == 0) {
    s2++;
    d /= 2;
  }
  while (d % 3 == 0) {
    s3++;
    d /= 3;
  }
  if (c != d) {
    cout << -1;
    exit(0);
  }
  long long ans = 0;
  long long r2 = 0, r3 = 0, l3 = 0, l2 = 0;
  while (s3 > f3) {
    s3--;
    s2++;
    ans++;
    r3++;
  }
  while (f3 > s3) {
    f3--;
    f2++;
    l3++;
    ans++;
  }
  while (s2 > f2) {
    ans++;
    r2++;
    s2--;
  }
  while (f2 > s2) {
    l2++;
    ans++;
    f2--;
  }
  cout << ans << "\n";
  while (r3 > 0 && x % 3 == 0) {
    x /= 3;
    x *= 2;
    r3--;
  }
  while (r3 > 0 && y % 3 == 0) {
    y /= 3;
    y *= 2;
    r3--;
  }
  while (l3 > 0 && a % 3 == 0) {
    a /= 3;
    a *= 2;
    l3--;
  }
  while (l3 > 0 && b % 3 == 0) {
    b /= 3;
    b *= 2;
    l3--;
  }
  swap(l3, l2);
  swap(r3, r2);
  while (r3 > 0 && x % 2 == 0) {
    x /= 2;
    r3--;
  }
  while (r3 > 0 && y % 2 == 0) {
    y /= 2;
    r3--;
  }
  while (l3 > 0 && a % 2 == 0) {
    a /= 2;
    l3--;
  }
  while (l3 > 0 && b % 2 == 0) {
    b /= 2;
    l3--;
  }
  cout << a << " " << b << "\n";
  cout << x << " " << y << endl;
  return 0;
}
