#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cmath>
#include <queue>
#include <set>
#include <map>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()
const int INF = 1<<29;

int main() {
  vector<int> prime(100000);
  REP(i,100000) prime[i] = i;
  prime[1] = 0;
  REP(i,100000)
    if (prime[i])
      for (int j=i*2; j<100000; j+=i)
        prime[j] = 0;
  prime.erase(remove(ALL(prime), 0), prime.end());
  int m, a, b;
  while(cin>>m>>a>>b,m) {
    int res = 0;
    int ansp, ansq;
    for (int i=0; prime[i]*prime[i]<=m; ++i) {
      int p = prime[i];
      int q = *(upper_bound(ALL(prime), min(m/p, p*b/a))-1);
//      cout << p << " " << q << " " << m/prime[i] << " " << p*b/a<<endl;
      if (a*q<=b*p) {
        if (res < p*q) {
          ansp = p;
          ansq = q;
        }
        res = max(res, p*q);
      }
    }
    printf("%d %d\n", ansp, ansq);
  }
}