#include <bits/stdc++.h>
using namespace std;
long long int ar1[300000 * 10], ar2[300000 * 10], prime[300000 * 10];
int main() {
  long long int a1, b1, a2, b2, x, y, z, w;
  prime[1] = 1;
  prime[0] = 1;
  long long int i, j, temp, ans, ct;
  for (i = 2; i < sqrt(300000 * 10); i++) {
    if (!prime[i]) {
      for (j = i; (j * i) < (300000 * 10); j++) {
        prime[i * j] = 1;
      }
    }
  }
  cin >> a1 >> b1 >> a2 >> b2;
  temp = a1;
  x = a1;
  for (i = 2; i <= sqrt(a1); i++) {
    if (!prime[i]) {
      while (temp % i == 0) {
        ar1[i]++;
        temp /= i;
        if (i == 2 || i == 3) {
          x /= i;
        }
      }
    }
  }
  if (temp < (300000 * 10)) {
    if (!prime[temp]) {
      ar1[temp]++;
    }
  }
  if (temp == 2 || temp == 3) {
    x /= temp;
  }
  temp = b1;
  y = b1;
  for (i = 2; i <= sqrt(b1); i++) {
    if (!prime[i]) {
      while (temp % i == 0) {
        ar1[i]++;
        temp /= i;
        if (i == 2 || i == 3) {
          y /= i;
        }
      }
    }
  }
  if (temp < (300000 * 10)) {
    if (!prime[temp]) {
      ar1[temp]++;
    }
  }
  if (temp == 2 || temp == 3) {
    y /= temp;
  }
  temp = a2;
  z = temp;
  for (i = 2; i <= sqrt(a2); i++) {
    if (!prime[i]) {
      while (temp % i == 0) {
        ar2[i]++;
        temp /= i;
        if (i == 2 || i == 3) {
          z /= i;
        }
      }
    }
  }
  if (temp < (300000 * 10)) {
    if (!prime[temp]) {
      ar2[temp]++;
    }
  }
  if (temp == 2 || temp == 3) {
    z /= temp;
  }
  temp = b2;
  w = temp;
  for (i = 2; i <= sqrt(b2); i++) {
    if (!prime[i]) {
      while (temp % i == 0) {
        ar2[i]++;
        temp /= i;
        if (i == 2 || i == 3) {
          w /= i;
        }
      }
    }
  }
  if (temp < (300000 * 10)) {
    if (!prime[temp]) {
      ar2[temp]++;
    }
  }
  if (temp == 2 || temp == 3) {
    w /= temp;
  }
  int check = 0;
  for (i = 0; i < (300000 * 10); i++) {
    if (!(i == 2 || (i == 3))) {
      if (ar1[i] == ar2[i]) {
        check++;
      }
    } else {
      check++;
    }
  }
  if (check == (300000 * 10) && ((x * y) == (z * w))) {
    if (ar1[3] == ar2[3]) {
      cout << abs(ar1[2] - ar2[2]) << "\n";
    } else if (ar1[3] > ar2[3]) {
      ans = ar1[3] - ar2[3];
      ct = ar1[3] - ar2[3];
      while (ct > 0) {
        if (a1 % 3 == 0) {
          a1 /= 3;
          a1 *= 2;
          ar1[2]++;
          ct--;
        } else {
          break;
        }
      }
      while (ct > 0) {
        if (b1 % 3 == 0) {
          b1 /= 3;
          b1 *= 2;
          ar1[2]++;
          ct--;
        } else {
          break;
        }
      }
      cout << abs(ar1[2] - ar2[2]) + ans << endl;
    } else {
      ans = ar2[3] - ar1[3];
      ct = ar2[3] - ar1[3];
      while (ct > 0) {
        if (a2 % 3 == 0) {
          a2 /= 3;
          a2 *= 2;
          ar2[2]++;
          ct--;
        } else {
          break;
        }
      }
      while (ct > 0) {
        if (b2 % 3 == 0) {
          b2 /= 3;
          b2 *= 2;
          ar2[2]++;
          ct--;
        } else {
          break;
        }
      }
      cout << abs(ar1[2] - ar2[2]) + ans << endl;
    }
    if (ar1[2] > ar2[2]) {
      ct = ar1[2] - ar2[2];
      while (ct > 0) {
        if (a1 % 2 == 0) {
          a1 /= 2;
          ct--;
        } else {
          break;
        }
      }
      while (ct > 0) {
        if (b1 % 2 == 0) {
          b1 /= 2;
          ct--;
        } else {
          break;
        }
      }
    } else {
      ct = ar2[2] - ar1[2];
      while (ct > 0) {
        if (a2 % 2 == 0) {
          a2 /= 2;
          ct--;
        } else {
          break;
        }
      }
      while (ct > 0) {
        if (b2 % 2 == 0) {
          b2 /= 2;
          ct--;
        } else {
          break;
        }
      }
    }
    cout << a1 << " " << b1 << endl;
    cout << a2 << " " << b2;
  } else {
    cout << "-1";
  }
}
