#include <bits/stdc++.h>
#pragma GCC optimize("O3")
int mod = 1000000007;
using namespace std;
bool isp(long long x) {
  for (long long i = 2; i * i <= x; ++i)
    if (x % i == 0) return false;
  return true;
}
void pog() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
}
bool sortinrev(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return (a.first > b.first);
}
bool prime_check(long long n) {
  bool flag = 1;
  for (long long i = 2; i <= sqrt(n); i++) {
    if (n % i == 0) {
      flag = 0;
      break;
    }
  }
  return flag;
}
long long power(long long x, unsigned long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = res * x;
    y = y >> 1;
    x = x * x;
  }
  return res;
}
bool sortbysec(const pair<long long, long long> &a,
               const pair<long long, long long> &b) {
  return (a.second < b.second);
}
int32_t main() {
  pog();
  long long n;
  cin >> n;
  long long a;
  cin >> a;
  long long b;
  cin >> b;
  long long l = a * b;
  if (l / n < 6) {
    if (a < b) {
      long long l, c;
      long long mo = LLONG_MAX;
      for (long long i = a; i * i <= 6 * n; i++) {
        if (i * ceil((6 * float(n)) / i) >= 6 * n &&
            i * ceil((6 * float(n)) / i) < mo &&
            ceil((6 * float(n)) / i) >= b) {
          mo = i * ceil((6 * float(n)) / i);
          l = i;
          c = ceil((6 * float(n)) / i);
        }
      }
      cout << mo << "\n" << l << " " << c << "\n";
    } else {
      long long l, c;
      long long mo = LLONG_MAX;
      for (long long i = b; i * i <= 6 * n; i++) {
        if ((i * ceil((6 * float(n)) / i)) >= 6 * n &&
            i * ceil((6 * float(n)) / i) < mo &&
            ceil((6 * float(n)) / i) >= a) {
          mo = i * ceil((6 * float(n)) / i);
          l = i;
          c = ceil((6 * float(n)) / i);
        }
      }
      cout << mo << "\n" << c << " " << l << "\n";
    }
  } else {
    cout << a * b << "\n" << a << " " << b << "\n";
  }
}
