#include <bits/stdc++.h>
using namespace std;
const int INF = INT_MAX / 2, NINF = INT_MIN / 2;
const long double PI = acos(-1.0);
void prepareIO() {
  if (strlen("") != 0) {
    freopen(
        ""
        ".in",
        "r", stdin);
    freopen(
        ""
        ".out",
        "w", stdout);
  }
}
void debout() {}
template <typename Head, typename... Tail>
void debout(Head H, Tail... T) {}
void stressout() {}
template <typename Head, typename... Tail>
void stressout(Head H, Tail... T) {}
void solve1();
int main() {
  prepareIO();
  solve1();
  fprintf(stderr, "%.6lf\n", (double)clock() / CLOCKS_PER_SEC);
  return 0;
}
const int N = 17000000;
void solve1() {
  long long n, a, b;
  cin >> n >> a >> b;
  n *= 6;
  long long t[2] = {INT_MAX, INT_MAX}, answer = t[0] * t[1], out[2];
  if (a * b >= n) {
    printf("%lld\n%lld %lld", a * b, a, b);
  } else {
    int one, two, first_number, second_number;
    if (a < b)
      one = 0, two = 1, first_number = a, second_number = b;
    else
      two = 0, one = 1, first_number = b, second_number = a;
    t[one] = first_number;
    while (t[one] * t[one] <= n) {
      t[two] = ceil((n + 0.0) / t[one]);
      if (t[two] >= second_number && t[one] * t[two] >= n &&
          answer > t[one] * t[two]) {
        out[one] = t[one];
        out[two] = t[two];
        answer = t[0] * t[1];
      }
      t[one]++;
    }
    printf("%lld\n%lld %lld", answer, out[0], out[1]);
  }
}
