#include <bits/stdc++.h>
#define REP(i, a, n) for(ll i=a; i<n; i++)
#define RREP(i, a, n) for(ll i=n-1; i>=a; i--)
#define SIZE_N 50010
typedef long long ll;
const ll mod =1e9+7;
const ll inf =1e18;
using namespace std;

ll m, a, b;
vector<ll> prime;
bool isPrime[SIZE_N];
void get_prime(){
    isPrime[0]=isPrime[1]=false;
    REP(i, 2, SIZE_N) isPrime[i]=true;

    for(int i=2; i*i<=SIZE_N; i++){
        for(int j=2*i; j<=SIZE_N; j+=i){
            isPrime[j]=false;
        }
    }

    REP(i, 0, SIZE_N){
        if(isPrime[i]) prime.emplace_back(i);
    }
    return;
}
int main() {
    get_prime();

    while(cin>>m>>a>>b, m||a||b){
        ll mx=0;
        ll width=-1, height=-1;
        REP(i, 0, prime.size()){
            REP(j, i, prime.size()){
                if(prime[i]*prime[j] > m) break;
                if(a*prime[j] > b*prime[i] || prime[i] > prime[j]) break;

                if(prime[i]*prime[j] > mx){
                    mx=prime[i]*prime[j];
                    width=prime[i];
                    height=prime[j];
                }
            }
        }

        cout<<width<<" "<<height<<endl;
    }
    return 0;
}
