#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

bool is_prime[10010];
vector<int> p;

void sieve() {
  fill(is_prime, is_prime + 10010, true);
  is_prime[0] = is_prime[1] = false;
  for (int i = 2; i < 10010; i++) {
    if (!is_prime[i]) continue;
    p.push_back(i);
    for (int j = 2 * i; j < 10010; j += i) {
      is_prime[j] = false;
    }
  }
}

int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  
  sieve();

  int m, a, b;
  while (cin >> m >> a >> b, m) {
    int h = 0, w = 0;
    for (int i = 0; p[i] * p[i] <= m; i++) {
      for (int j = i; p[j] * p[j] * a <= m * b; j++) {
        if (a * p[j] > b * p[i] || p[i] * p[j] > m || p[i] * p[j] <= h * w) continue;
        h = p[i];
        w = p[j];
      }
    }
    cout << h << " " << w << endl;
  }

  return 0;
}
