#include <bits/stdc++.h>
using namespace std;
void pairsort(long long a[], long long b[], long long n) {
  pair<long long, long long> pairt[n];
  for (long long i = 0; i < n; i++) {
    pairt[i].first = a[i];
    pairt[i].second = b[i];
  }
  sort(pairt, pairt + n);
  for (long long i = 0; i < n; i++) {
    a[i] = pairt[i].first;
    b[i] = pairt[i].second;
  }
}
bool isPrime(long long n) {
  for (long long i = 2; i <= sqrt(n); i++) {
    if (n % i == 0) return 0;
  }
  return 1;
}
std::vector<vector<long long>> adj(200005);
long long c[200005];
long long vis[200005];
set<long long> s;
long long f = 0, f2, k;
void dfs(long long u) {
  vis[u] = 1;
  s.insert(c[u]);
  if (!f && c[u] != c[1]) {
    f = u;
    f2 = k;
  }
  for (long long i = 0; i < adj[u].size(); i++)
    if (!vis[adj[u][i]]) {
      k = u;
      dfs(adj[u][i]);
    }
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, a, b;
  cin >> n >> a >> b;
  long long a1, b1, a2, b2;
  a2 = a;
  b2 = b;
  a1 = (a < b ? a : b);
  b1 = (a > b ? a : b);
  a = a1;
  b = b1;
  n *= 6;
  if (ceil((double)n / b) <= a) {
    cout << a * b << "\n";
    cout << a << " " << b;
    return 0;
  }
  long long mi = 1000000000000000;
  for (long long i = a; i * i <= n; ++i) {
    if (ceil((double)n / i) >= b) {
      if (i * ceil((double)n / i) < mi) {
        b1 = ceil((double)n / i);
        a1 = i;
        mi = (mi < i * b1 ? mi : i * b1);
      }
    }
  }
  if (a1 >= a2 && b1 >= b2) {
    cout << mi << "\n";
    cout << a1 << " " << b1;
  } else {
    cout << mi << "\n";
    cout << b1 << " " << a1;
  }
}
