#include<iostream>
#include<cstring>
using namespace std;


#define MAX_N 1000000
int prime[MAX_N];
bool is_prime[MAX_N+1];
int sieve(int n){
	int p=0;
	memset(is_prime,true,sizeof(is_prime));
	is_prime[0]=is_prime[1]=false;
	for(int i=2;i<=n;i++){
		if(is_prime[i]){
			prime[p++]=i;
			for(int j=2*i;j<=n;j+=i)is_prime[j]=false;
		}
	}
	return p;
}


int main(){
	int m,a,b;
	sieve(100010);
	while(cin>>m>>a>>b,m||a||b){
		int p=0,q=0;
		for(int i=0;prime[i]*prime[i]<=m;i++){
			for(int j=i;prime[i]*prime[j]<=m;j++){
				if(a*prime[j]<=prime[i]*b && p*q<prime[i]*prime[j]){
					p=prime[i];
					q=prime[j];
				}
			}
		}
		cout<<p<<' '<<q<<endl;
	}
	return 0;
}