#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void smax(T &x, T y) {
  x = max((x), (y));
}
template <class T>
inline void smin(T &x, T y) {
  x = min((x), (y));
}
inline void scanInt(int &x) {
  register char c = getchar();
  x = 0;
  bool neg = false;
  while (c < 48 || c > 57) {
    if (c == '-') neg = true;
    c = getchar();
  }
  for (; c > 47 && c < 58; c = getchar()) {
    x = (x << 1) + (x << 3) + c - 48;
  }
  if (neg) x *= -1;
}
int main(int argc, const char *argv[]) {
  long long n, a, b;
  cin >> n >> a >> b;
  long long target = n * 6;
  if (a * b >= target) {
    cout << a * b << "\n" << a << " " << b;
    return 0;
  }
  pair<long long, long long> ans(a, b);
  long long best = (2e13);
  bool swapped = false;
  if (a > b) {
    swap(a, b);
    swapped = 1;
  }
  for (long long i = a; i * i < target; i++) {
    long long other = target / i;
    if (other * i < target) other++;
    if (other < b) break;
    long long area = i * other;
    if (area >= target && area < best) {
      if (area == target) {
        if (swapped) swap(i, other);
        cout << target << "\n" << i << " " << other << endl;
        return 0;
      }
      best = area;
      ans = {i, other};
    }
  }
  if (swapped) swap(ans.first, ans.second);
  cout << best << endl;
  cout << ans.first << " " << ans.second;
  return 0;
}
